Hallo, ich versuche eine Totzeit beim Attiny25 am Port OCR1B zu programmieren. Die PWM funktioniert, aber die Totzeit ist nicht da? Was ist falsch? anbei Ausschnitt Quellcode ldi temp, (1<<PLLE) ; Enable PLL out PLLCSR, temp waitPLL: in temp, PLLCSR ; Wait for PLL 100ms) sbrs temp,PLOCK rjmp waitPLL in temp, PLLCSR ; Set PLL as PWM clock source 64Mhz ldi temp1,(1<<PCKE) or temp,temp1 out PLLCSR,temp ldi temp,(1<<CS12)|(1<<CS10); 30 kHz Takt out TCCR1,temp ldi temp,(1<<PWM1B)|(1<<COM1B0) ;Port B3 Comparator out GTCCR,temp ldi temp1,3 ;Deadtime Teiler 8x out DTPS1,temp ldi temp1,255 ;Deadtime B Comparator Max out DT1B,temp
Guck mal in Zeile 42 ;-) Wie, keine Zeilennummern? Das würde die Diskussion über deinen Code erheblich vereinfachen. Hat es einen besonderen Grund, dass du keine code-Tags verwendest, wie unter "Formatierung" angegeben?
Noch eine Anmerkung: 'out DTPS1,temp' geht schief, das Datenblatt ist an dieser Stelle (14.1.1) falsch, siehe tn25def.inc:
1 | .equ DTPS = 0x23 |
2 | ; DTPS - Dead time prescaler register |
3 | .equ DTPS0 = 0 ; |
4 | .equ DTPS1 = 1 ; |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.