Mit underscore drinnen ? das geht ?&B0001_1010
Hallo alle zusammen!
Ich habe ein Problem mit der selbstständigen Frequenzausgabe von meinem Timer2. Ich habe heute den ganzen Nachmittag das Datenblatt und das Forum durchforstet aber eine Lösung hab ich nicht entdeckt.
Seht ihr vielleicht einen Fehler, der mir entgangen ist?Code:'------------------------------------------------------------------------------- $regfile = "m8def.dat" 'Atmega8 $crystal = 8000000 'Interner Oszillator 8 MHz '------------------------- Beginn - Timer-Einstellungen ------------------------ DDRB.3 = 1 'Pin PB3/OC2 ist Ausgang TCCR2 = &B0001_1010 'Pin OC2/PB3 togglen, kein PWM, Timer-Reset bei Compare, Clock/8 OCR2 = 32 'Periodendauer von 64µs/15,6khz DDRB.1=1 'Pin PB1/OC1A ist Ausgang TCCR1A = &B0100_0000 'Pin OC1A/PB1 togglen (Status-Wechsel), kein PWM TCCR1B = &B0000_1010 'Timer-Reset bei Compare, Clock/8 COMPARE1A = 10000 'Periodendauer von 20µs/50Hz '-------------------------- Ende - Timer-Einstellungen ------------------------- '---------------------Beginn der Hauptroutine----------------------------------- Do Loop '----------------------Ende der Hauptroutine------------------------------------
Timer1 funktioniert einwandfrei. Habe es mitm Oszi überprüft. Nur bei PinB.3/Timer2 kommt eine Art Dreieck-Impuls herraus und nicht der wie es sein sollte Hälfte Low-Pegel / Hälfte High-Pegel.
Vielen Dank für eure Bemühungen.
Bis dann Jens
Mit underscore drinnen ? das geht ?&B0001_1010
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Was ist denn underscore? Ich bin noch ein ziemlicher Frischling beim programmieren
Nen underscore ist das hier: _ (hat mit Programmieren an sich nix zu tun, ist nur der englsche Ausdruck für das Teil)
ahso
ja das geht, funktioniert überall einwandfrei...
Hallo,
was mir einfällt, an PB3 ist auch ein Anschluss zum programmieren (MOSI), hast du den Adapter abgesteckt nach dem flashen, sonst könnte der Adpater dazwischenfunken ?
Leider war es auch nicht der Stecker der Probleme macht.
Hier noch einmal alle meine Einstellungen.
• Bit 7 – FOC2: Force Output CompareCode:7 6 5 4 3 2 1 0 TCCR FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20 1 0 0 1 1 0 0 1
The FOC2 bit is only active when the WGM bits specify a non-PWM mode. However, for
ensuring compatibility with future devices, this bit must be set to zero when TCCR2 is
written when operating in PWM mode. When writing a logical one to the FOC2 bit, an
immediate Compare Match is forced on the waveform generation unit. The OC2 output
is changed according to its COM21:0 bits setting. Note that the FOC2 bit is implemented
as a strobe. Therefore it is the value present in the COM21:0 bits that determines the
effect of the forced compare.
A FOC2 strobe will not generate any interrupt, nor will it clear the timer in CTC mode
using OCR2 as TOP.
The FOC2 bit is always read as zero.
Laut dieser Aussage müsste FOC2 "1" sein. Aber auch durch diese Änderung ändert sich an meinem Oszi-Bild nichts.
• Bit 6,3 – WGM21:0: Waveform Generation Mode
Bit 6 (0) und Bit 3 (1) sind laut DB-Tabelle 42 auf "Clear Timer on Compare
Match (CTC)" eingestellt.
• Bit 5:4 – COM21:0: Compare Match Output Mode
Bit 5 (0) und 4 (1) geben "Toggle OC2 on Compare Match" vor laut DB-Tabelle 43
• Bit 2:0 – CS22:0: Clock Select
Bit 2 (0), Bit 1 (1) und Bit 0 (0) stellen den Prescaler laut DB-Tabelle 46 auf 8
Im Register TCNT2 zählt der µp hoch bis zum Vergleichswert, welcher im Register OCR2 festgelegt wird. Ich weiß mir echt nicht mehr zu helfen. Liegt es an meinem Englisch? Einem Fehler im Datenblatt? Den Atmega kann ich zu 99% ausschließen, habe es nämlich auch schon mit einem anderen ausprobiert und es kam genau das selbe Ergebnis bei herraus.
Vielen Dank für eure Bemühungen mir weiterzuhelfen
Bis dahin
Jens
Theoretisch sollte es gehen, auch im Simulator funktionierts.
Was hast Du für ein Board, ist da nicht doch noch was anderes an PB3 angeschlossen, Lötbrücke oder LED mit Widerstand usw. ?
Musst mal die Lupe auspacken !
Sieht man von hier so schlecht
Ich habe 2 Entwicklungsboards mit einigen Zusätzen (USB, R232, LCD...) dazu noch ein Board, an dem ich alle Pins einzeln über Drahtbrücken mit Peripherie beschalten kann.
Aber bei allen drei dasselbe dumme Signal an PB3 mit oder ohne Programmierstecker. Schaltplan vom "Steckboard" ist im Anhang zu finden.
Hat jemand vielleicht die Möglichkeit mein Programm einmal mit Oszi zu testen?
MfG
Jens
Hab das grad mal am RN-M8 Board probiert, hab aber grad nur einen 16MHz rumliegen, deshalb gehts halt doppelt so schnell wie ausgerechnet, aber ansonsten die Signale schön PWM-mässig, egal ob ISP-Adapter dran oder nicht.
Hast Du da direkt gemessen an diesen Pins wenn noch nix angesteckt ist, irgendwo muss sich da noch was verstecken was Dir da dazwischenfunkt.
Lesezeichen