Hallo, ich bins wieder. ich verzweifel grad an nem 16bit PWM. Hier erstmal mein Code zur initialisierung: TCCR1A |= (1 << WGM11); TCCR1A |= (1 << COM1A0); TCCR1A |= (1 << COM1A1); TCCR1A |= (1 << COM1B0); TCCR1A |= (1 << COM1B1); TCCR1B |= (1 << WGM13); TCCR1B |= (1 << CS11); OCR1A = 0; OCR1B = 0; ICR1 = 0xffff; Also wie man hoffentlich an den Einstellungen sieht soll er bis ICR1 hochzählen (0xffff) und beim compare die Ausgänge OC1A und OC1B setzten, bzw rücksetzten. DIe beiden Register OCR1A und OCR1B werden später im Programm noch auf einen höheren Wert gesetzt (0x7530). Da ich schon nen Display am MC am laufen habe, habe ich mir mal die beiden OCR Register und das TCNT1 anzeigen lassen und das sieht ganz gut aus. Also der TCNT1 läuft bis 0xffff hoch und dann wieder runter... Aber warum werden nun nicht die Ausgänge gesetzt? Danke schon mal, Bandit
Hi, haste die entspechenden I/O Pins auch als Ausgang deklaiert? Globale Intterupts nicht aktiviert? zumindest muss man da bei Bascom draufachten . Mfg Dirk
Jo, super, das wars. Hätten se auch ruhig in das Datenblatt mit reinschreiben können (Oder hab ichs überlesen?). Na ja, funzt jetzt jedenfalls. Thx für den Tip
An was lags denn jetzt ? Interrupts oder Ausgang nicht gesetzt ? Wär schön wenn die Fragesteller bei Lösung des Problems das immer noch posten würden, dann haben auch andere was davon... MfG Stefan
Also es lag bei mir daran, das ich die entsprechenden Pins nicht als Ausgang deklariert habe. Ich dachte das würde der von alleine machen, da man ja sonst recht wenig damit anfangen kann. cu, Frank
Ganz davon abgesehen: TCCR1A |= (1 << WGM11); TCCR1A |= (1 << COM1A0); TCCR1A |= (1 << COM1A1); TCCR1A |= (1 << COM1B0); TCCR1A |= (1 << COM1B1); TCCR1B |= (1 << WGM13); TCCR1B |= (1 << CS11); 7 SBI-Befehle, für die ein einziger OUT genügen würde: TCCR1B = _BV(WGM11)|_BV(WGM13)| _BV(COM1A0)|_BV(COM1A1)| _BV(COM1B0)|_BV(COM1B1)| _BV(CS11);
Jupps, würde ich auch heute nicht mehr so machen. Zu dem Zeitpunkt war ich noch ein totaler Newbee :-))
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.