Symphonie
11.06.2009, 14:54
Hallo, ich habe ein Problem. Bis zum Reloadwert von 170 ist alles ok - Ausgang 0 und 1 werden im Wechsle angesteuert. Ab einem Reloadwert von 180 ist nur noch Ausgang 0 an und das dauernd.
Ich habe keine Ahnung an was das liegen kann und bitte um Hilfe.
Klaus Dieter
ACHTUNG: Da ich gerade experimentiere sind noch ein paar Variablen drin welche im Moment noch nicht benutzt werden! Es geht mit im Moment nur um das Problem mit dem Reload!
Taktfrequenz: 128kHz
'PIN 5 Ausgang PB0 = Ansteuerung Transistor T1
'PIN 6 Ausgang PB1 = Ansteuerung Transistor T2
'PIN 3 Ausgang PB45 = Ansteuerung LED
'Schalter rechts oder Links = Dauer
'Ausgang = PORT
'Eingang = PIN
'byte range from 0-255
'integer range from -32767 - +32768
'length can be up to 11 characters
'================================================= =====
'Einstellungen
'================================================= =====
$regfile "attiny13.dat"
$crystal = 128000
'$hwstack = 8
'$swstack = 2
'$framesize = 5
$hwstack = 32
$swstack = 5
$framesize = 20
Stop Ac ' AD-Wandler ausschalten
Stop Adc
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.4 = Output
Dim T1toggle As Bit
Dim T2toggle As Bit
Const Laden = 170
Config Timer0 = Timer , Prescale = 1
On Timer0 Ontimer
Timer0 = Laden
Enable Timer0
Enable Interrupts
T1 Alias Portb.0
T2 Alias Portb.1
Led Alias Portb.4
Dim Plus As Bit ' AUS
Dim Minus As Bit ' EIN
Dim Verzoegerung As Iram Byte
Dim Aus As Bit ' AUS
Dim Ein As Bit ' EIN
Dim Zaehler As Integer
Plus = 1 ' Zuordnung Aus
Minus = 0 ' Zuordnung Ein
Verzoegerung = 115 ' 120 = 3,78Hz, 122 = 3,731Hz, 115 = 3,9062Hz mit dem Oszi ausgezählt also sehr ungenau!
Aus = 1 ' Zuordnung Aus
Ein = 0 ' Zuordnung Ein
T1 = Minus ' Aus mit Minus
T2 = Plus ' Aus mit Plus
T1toggle = 0
T2toggle = 1
Led = Aus
Zaehler = 0
'================================================= =====
'Hauptprogramm
'================================================= =====
Do
If Zaehler = 1000 Then
T1toggle = Not T1toggle
T2toggle = Not T2toggle
Portb.0 = T1toggle
Portb.1 = T2toggle
Zaehler = 0
End If
Loop
'================================================= =====
' Interrupt
'================================================= =====
Ontimer:
Timer0 = Laden
Incr Zaehler
Return
Ich habe keine Ahnung an was das liegen kann und bitte um Hilfe.
Klaus Dieter
ACHTUNG: Da ich gerade experimentiere sind noch ein paar Variablen drin welche im Moment noch nicht benutzt werden! Es geht mit im Moment nur um das Problem mit dem Reload!
Taktfrequenz: 128kHz
'PIN 5 Ausgang PB0 = Ansteuerung Transistor T1
'PIN 6 Ausgang PB1 = Ansteuerung Transistor T2
'PIN 3 Ausgang PB45 = Ansteuerung LED
'Schalter rechts oder Links = Dauer
'Ausgang = PORT
'Eingang = PIN
'byte range from 0-255
'integer range from -32767 - +32768
'length can be up to 11 characters
'================================================= =====
'Einstellungen
'================================================= =====
$regfile "attiny13.dat"
$crystal = 128000
'$hwstack = 8
'$swstack = 2
'$framesize = 5
$hwstack = 32
$swstack = 5
$framesize = 20
Stop Ac ' AD-Wandler ausschalten
Stop Adc
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.4 = Output
Dim T1toggle As Bit
Dim T2toggle As Bit
Const Laden = 170
Config Timer0 = Timer , Prescale = 1
On Timer0 Ontimer
Timer0 = Laden
Enable Timer0
Enable Interrupts
T1 Alias Portb.0
T2 Alias Portb.1
Led Alias Portb.4
Dim Plus As Bit ' AUS
Dim Minus As Bit ' EIN
Dim Verzoegerung As Iram Byte
Dim Aus As Bit ' AUS
Dim Ein As Bit ' EIN
Dim Zaehler As Integer
Plus = 1 ' Zuordnung Aus
Minus = 0 ' Zuordnung Ein
Verzoegerung = 115 ' 120 = 3,78Hz, 122 = 3,731Hz, 115 = 3,9062Hz mit dem Oszi ausgezählt also sehr ungenau!
Aus = 1 ' Zuordnung Aus
Ein = 0 ' Zuordnung Ein
T1 = Minus ' Aus mit Minus
T2 = Plus ' Aus mit Plus
T1toggle = 0
T2toggle = 1
Led = Aus
Zaehler = 0
'================================================= =====
'Hauptprogramm
'================================================= =====
Do
If Zaehler = 1000 Then
T1toggle = Not T1toggle
T2toggle = Not T2toggle
Portb.0 = T1toggle
Portb.1 = T2toggle
Zaehler = 0
End If
Loop
'================================================= =====
' Interrupt
'================================================= =====
Ontimer:
Timer0 = Laden
Incr Zaehler
Return