Ersma Moin an alle hier ^^ Kommen wir mal direkt zu meinem Problemchen: Ich hab mir vor kurzer Zeit das Set D072 von display3000 bestellt um in die weite Welt der µC einzusteigen ;P Paket kam gestern und bastel seitdem ein wenig mit dem Modul herum. Heute hatte ich mir vorgenommen einmal die Display-Dimmung in angriff zu nehmen. Ich hab einiges bereits ausprobiert was ich hier im Forum gefunden hab... Bisher allerdings ohne Ergebnis :( Folgendes: Ich arbeite mit dem AtMega 2561 auf 14,7456 Mhz Port B.7 ist mit der Display-Beleuchtung verbunden (ein/aus funktioniert) Das Datenblatt sagt mir zu diesem Pin folgende Alternativen: OC0A/OC1C/PCINT7 Wie gesagt, probiert hab ich vieles doch nichts brachte bisher meinen erhofften Erfolg :/ Ich hoffe das ihr mir ein wenig unter die Arme greifen könnt :) Mfg Borsty
Borsty wrote: > Wie gesagt, probiert hab ich vieles doch nichts brachte bisher meinen > erhofften Erfolg :/ > > Ich hoffe das ihr mir ein wenig unter die Arme greifen könnt :) Da gibts 2 Wege: Du zeigst, was Du gemacht hast und kommentierst, wie Du denkst, das es funktioniert und dann guckt sich das jemand an und hilft. Oder Du zeigst garnichts und wartest, bis Dir die gebratenen Tauben in den Mund fliegen (das kann dauern). Peter
eine gute Quelle ist vielleicht noch das hier: http://www.lugbz.org/documents/smart-questions_de.html GRuss
@ Borsty (Gast) > Das Datenblatt sagt mir zu diesem Pin folgende Alternativen: > OC0A/OC1C/PCINT7 > Wie gesagt, probiert hab ich vieles doch nichts brachte bisher meinen >erhofften Erfolg :/ Das soll vorkommen. AVR-Tutorial: PWM MFG Falk
Oh mann, ich sollte um halb 12 keine Beiträge mehr schreiben :P Also gut, Ich hab mir bereits diverse Tutorials über PWM auf den Atmel µProcs durchgelesen. Mein Problem ist, das ich bevorzugt in C schreibe und in dem GCC-Avr Tutorial sind nur drei Tabellen und drei Zeilen Code gezeigt.
1 | TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1); // Nicht inv. 10 Bit PWM |
2 | TCCR1B = (1<<CS12) | (1<<CS10); // Vorteiler von 1024 |
3 | OCR1A = 128; // Vergleichswert |
Leider hab ich den Code der mir probleme bereitet hatte aus Frust wieder aus dem Projekt entfernt :X Was ich bisher nicht verstehe ist, wie ich den oben stehenden Code nun auf mein Port B 7 bekomme. ( Laut datenblatt OC0A ) Meine Idee ( eventuell stell ichs mir ganz einfach zu simpel vor oO ):
1 | TCCR0A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1); // Nicht inv. 10 Bit PWM |
2 | TCCR0B = (1<<CS12) | (1<<CS10); // Vorteiler von 1024 |
3 | OCR0A = 128; // Vergleichswert |
Allerdings ohne erfolg.
Achja, bevor ichs vergesse. PortB 7 ist als Ausgang definiert ( Simples ein und aus schalten funktioniert ja anstandslos )
@ Borsty (Gast) >Oh mann, ich sollte um halb 12 keine Beiträge mehr schreiben :P Genau, da wird auch die Mutti böse ;-) >Meine Idee ( eventuell stell ichs mir ganz einfach zu simpel vor oO ): >TCCR0A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1); // Nicht inv. 10 Bit PWM >TCCR0B = (1<<CS12) | (1<<CS10); // Vorteiler von 1024 >OCR0A = 128; // Vergleichswert Alles richtig. Es feht aber noch eine Kleinigkeit. Du must das Pin als Ausgang schalten. DDRB |= (1<<PB7); MFG Falk
>Alles richtig. Es feht aber noch eine Kleinigkeit. Du must das Pin als >Ausgang schalten. >DDRB |= (1<<PB7); gug ma einen über dir :)
Hm.. auf den ersten Blick: Nicht ganz so einfach. Ich kenne jetzt DEINEN Controller im speziellen nicht, rödel gerade auf einem atmega128 herum, aber check mal: Die Register- und Bitdefinitionen sind vermutlich die falschen. Register: Du hast alles 1:1 von T1 auf T0 umgestrickt, aber es GIBT z.B. gar kein TCCR0A-Register, nur ein TCCR0-Register. Timer0 ist (zumindest bei meinem ATMEGA128)ein 8-bit-Timer, T1 ein 16-Bit-Timer..) Bitdefinitionen: Du verwendest Timer0, aber die Bitdefinitionen für Timer1 (CS12, COM1A1...) Check mal das Datenblatt und die Register-und Bitdefinitionen in Deiner ioxxxx.h (WinAVR\avr\include\avr)
@ Borsty (Gast) >>DDRB |= (1<<PB7); >gug ma einen über dir :) Klassische Race condition. Als ich meine Antwort schrieb war dein Beitrag noch nicht drin. Als ich meine Antwort abgeschickt hatte, war dein Beitrag vor meiner Antwort drin. ;-) MfG Falk
ÖÖööööhm Ok... hat sich erledigt. Hab ein neues Projekt angefangen und dan oben genannten code benutzt. Funktioniert nun Spitzenmäßig. Das nächste Ziel werden nun die Interrupts sein =) Mal gugn wie lange ich dabei ohne Forum auskommt fg
@ Borsty (Gast)
>ÖÖööööhm Ok... hat sich erledigt.
Drisch
Die viruelle Watschn hast du dir redlich verdient.
MfG
Falk
... hab das Datenblatt vom 2561 aber nicht gelesen - Ohne Gewähr.....check it!!
Ich glaub mal das das mit den Konstanten bei den Timer ähnlich wie bei
den Pins aussieht.
PA1, PB1, PC1, PD1 usw haben alle den Wert 1 ^^
>Die viruelle Watschn hast du dir redlich verdient.
Jo, habs verdient ;P
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.