PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : die erste isr so kann das doch niemals laufen



magic33
25.02.2007, 14: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

magic33
25.02.2007, 16:02
scheint keiner da zusein der helfen kann
bin in anderem forum fündig geworden

also das mit den ports ist HARDWAREMÄSSIG gerefelt
siehe pinconfig im datenblatt des µC

port b3 ist oc1b

mal weiterprobieren

magic33
26.02.2007, 16:13
scheint keiner da zusein der helfen kann
bin in anderem forum fündig geworden

also das mit den ports ist HARDWAREMÄSSIG gerefelt
siehe pinconfig im datenblatt des µC

port b3 ist oc1b

mal weiterprobieren


ICH HABS ISR ises zwar nicht aber es läuft autonom auf ocr1b


'/////////////////////////////////////////////////////////
'/// 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

Config Portb = Output


Led Alias Portb.0


Tccr1a = 17 'toggle ocr1b in pwm mode
Tccr1b = 135 'clock PRESCALE 64 ctc1 an relod nach compare b/c

Ocr1b = 125 'vorlasen servo mitte
Ocr1c = 255 'compare zahl


Enable Interrupts

Do

Wait 2 '' ' ' ' ' ' ' ' ' '
Toggle Led
Ocr1b = 192 '0,5ms servo links

Wait 2
Toggle Led
Ocr1b = 63 '1,5ms servo rechts

Loop

End 'pulsbreite 2ms