magic33
25.02.2007, 15:40
servus ich versuch mal mich an der ersten interrupt service routine
chip tiny26
timer1
'/////////////////////////////////////////////////////////
'/// BASCOM ISP PROGRAMMER TEST timer1 ///
'/// toggle portb.3
'/////////////////////////////////////////////////////////
$regfile = "AT26def.dat" ' used device
$crystal = 8000000
$hwstack = 32 ' default use 32
$swstack = 10 'default use 10 for
$framesize = 40 'default use 40 for
Dim T As Byte
Dim Ph As Bit
Dim A As Byte
Led Alias Portb.0
Set Timsk.2 'enable interrupt
Set Timsk.6 'compare1a
Tccr1a = 64 'toggle ocr1a
Tccr1b = 7 'clock 64
Enable Interrupts
On Timer1 Isr_timer1
Set Ddrb.3
Ocr1c = 255 'hier output von compare1a
Ocr1a = 125 ' 1ms mitte servo
Do
For T = 1 To 255
Waitms 100
Next
Toggle Led
For T = 255 To 1 Step 1
Waitms 100
Next
Toggle Led
Loop
End
Isr_timer1:
If Ph = 1 Then
Ocr1a = 63 '0,5ms unterste grenze der high
For A = 0 To T Step 1
Ocr1a = 10 'je wert high + 8µs
Next A
Ph = 0
Else
For A = 0 To 10 'low fase 10*2ms
Ocr1a = 250
Next A
Ph = 1
End If
so kann doch das niemals laufen
als gegenstück zu servo gedacht
ich möchte das genau haben und gerne verstehen wie diese routinen laufen
so auf keinen fall
der tnc1 ist doch beim tiny ein upcounter und kommt dann an den ovf1 timer owerflow
bitte um hilfe
chip tiny26
timer1
'/////////////////////////////////////////////////////////
'/// BASCOM ISP PROGRAMMER TEST timer1 ///
'/// toggle portb.3
'/////////////////////////////////////////////////////////
$regfile = "AT26def.dat" ' used device
$crystal = 8000000
$hwstack = 32 ' default use 32
$swstack = 10 'default use 10 for
$framesize = 40 'default use 40 for
Dim T As Byte
Dim Ph As Bit
Dim A As Byte
Led Alias Portb.0
Set Timsk.2 'enable interrupt
Set Timsk.6 'compare1a
Tccr1a = 64 'toggle ocr1a
Tccr1b = 7 'clock 64
Enable Interrupts
On Timer1 Isr_timer1
Set Ddrb.3
Ocr1c = 255 'hier output von compare1a
Ocr1a = 125 ' 1ms mitte servo
Do
For T = 1 To 255
Waitms 100
Next
Toggle Led
For T = 255 To 1 Step 1
Waitms 100
Next
Toggle Led
Loop
End
Isr_timer1:
If Ph = 1 Then
Ocr1a = 63 '0,5ms unterste grenze der high
For A = 0 To T Step 1
Ocr1a = 10 'je wert high + 8µs
Next A
Ph = 0
Else
For A = 0 To 10 'low fase 10*2ms
Ocr1a = 250
Next A
Ph = 1
End If
so kann doch das niemals laufen
als gegenstück zu servo gedacht
ich möchte das genau haben und gerne verstehen wie diese routinen laufen
so auf keinen fall
der tnc1 ist doch beim tiny ein upcounter und kommt dann an den ovf1 timer owerflow
bitte um hilfe