Gefunden für avr timer1 ocr1a - Zum Elektronik Forum |
| 1 - Rechteckgenerator mit ATmega8 \"verschluckt sich\" -- Rechteckgenerator mit ATmega8 \verschluckt sich\ | |||
| |||
| 2 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
| Hi!
Ich möchte mir ein Elektorprojekt nachbauen. Dafür wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier. Ich habe schon etwas über die Unterschiede gefunden, blicke aber trotzdem nicht ganz durch. http://www.gaw.ru/pdf/Atmel/app/avr/AVR094.pdf Z.B. meckert der Compiler über "out TCCR0A,r16" Ist irgendwie klar, der Atmega8 hat ja nur einen Ausgang vom zweiten Timer etc. Aber wie schreibe ich das um? Geht das überhaupt, oder war der Atmega88 _statt_ dem 8er nötig? Wäre schön, wenn mir jemand weiterhelfen würde
Code : | |||
3 - Selbstbau eines Lichtweckers mit digitaler Steuerung -- Selbstbau eines Lichtweckers mit digitaler Steuerung | |||
| Schönen guten Tag
Ich habe bei meinem Projekt schon gute Fortschritte erzielt. Im Moment beschäftige ich mich schon mit PWM und den Timern. Dazu habe ich noch eine Frage: Im Tutorial von mikrocontroller.net wird beim Kapitel über PWM ( http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM ) mit dem timer1 im Modus 14 gearbeitet. Zu Übungszwecken wollte ich den Timer nach dem Vorbild aus dem Kapitel in den 10Bit-Modus (Modus 7) versetzen. Dies gelang zunächst nicht: Der Ausgang schaltete einfach nicht um. Da ich nicht mehr weiter wusste wollte ich mich damit schon an euch wenden und habe dazu den Code etwas aufgeräumt und ausführlicher kommentiert. Das verwunderliche war: danach hat es funktioniert, obwohl ich nichts inhaltliches an dem Code geändert habe. Meine Vermutung war, dass man die Bits zur Timer-Konfiguration in einer bestimmten Reihenfolge schreiben muss (damit meine ich nicht, dass man in 16Bit-Registern zuerst das High- und dann das Low-Byte schreibt). Um sicher zu gehen wollte ich da lieber nochmal nachfragen ob das wirklich so ist, und wenn ja, in welcher Reihenfolge man die Bi... | |||
| 4 - Zeitgesteuerte LED's mit Taster und Timer -- Zeitgesteuerte LED's mit Taster und Timer | |||
| Hallo Meenzer,
Vorerst: wir haben Code-Tags, damit wird das übersichtlicher .
Achja, deine Taktfrequenz ist wirklich 8MHz? Wenn das schon nicht stimmt, sind sämtliche Zeitwerte deines Programmes in der Realität anders .
Und der AVR tut auch was? Edit: Öhm, also von der Timersache ist das OK, der erzeugt eine Frequenz von etwa 1Hz. Hast du mal daran gedacht, den Timer im Interrupt neuzuladen, also wieder Load Timer1, 34285 Ansonsten ist das Programm eigentlich in Ordnung. Nur eben den Wert neuladen .
Und die Zählwerte anpassen, für 2 Sekunden ist 9 schon viel zu hoch .
Einzig die Frage, ob das Entprellen der Tasten richtig funktioniert. Ich kann mit dem Befehl debounce nichts anfangen, aber wird schon stimmen. [ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:28 ] [ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:31 ]... | |||
| 5 - Drehgeber mit Bascom auslesen und PWM regeln -- Drehgeber mit Bascom auslesen und PWM regeln | |||
| Hallo,
OCR ist das Register für den Vergleichswert, n ist ein Index, der von Timer zu Timer unterschiedlich ist: Beispielsweise ist OCR0 das Vergleichsregister von Timer0, OCR1 von Timer1 und OCRn von Timern (Je nach Ausstattung hat ein AVR mehrere Timer, verschieden große Timer und verschiedene Timermodi) Zum Enkoder: Das ist eben das Problem von Bascom: Es gibt tausend Befehle, aber keiner weis so recht, wie er funktioniert. Also: Der zurückgelieferte Werte entspricht einem dekodierten Graykode: So ein Enkoder spukt seine Werte graykodiert aus, jenachdem ob hoch oder runtergezählt wird wurde entweder nach links oder rechts gezählt. Das ist der Wert, den die Funktion Encoder zurückliefert, nehme ich mal stark an. Jetzt kann man das auch anders auswerten, z.b. über XOR-Verknüpfung beider Phasen und jeweils dem Wert, der eine Messung vorher gespeichert wurde. Gibt es denn keine exakte Beschreibung und Konfiguration der Encoder-Funktion? Zum Testen des Enkoders: Vermutliche Belegung ausprobieren, indem ein Pin auf Masse, die anderen beiden über Widerstände 1-100kΩ gegen Plus gelegt werden. Diese beiden kommen dann an je einen Kanal am Oszi; dann wird probiert, wann ein Signal auf beiden Kanälen kommt, dass ... | |||
| 6 - C: Variable wird unerklärlicherweise gelöscht.... -- C: Variable wird unerklärlicherweise gelöscht.... | |||
| Hallihallo zusammen,
ich arbeite gerade an meinem ersten grösseren Projekt mit C. Es gilt ein Nokia 3310 LCD anzusteuern. Die Ansteuerung klappt wunderbar, nur hab ich ein Problem mit der Programmierung. Es geht um folgendes. Jede Sekunde wird vom Timer1 ein Output Compare A Interrupt ausgelöst. In der Interruptroutine wird eine Variable ("Sekunde") hochgezählt. Dieser neue Sekunden-Wert soll dann auf dem LCD erscheinen. Dazu muss das LCD zuerst gelöscht werden. Dazu werden zwei verschachtelte For-Schleifen durchlaufen. Nun kommts. Sobald die erste Schleife den Wert "6" annimmt, springt der Wert von "Sekunde" völlig zusammenhangslos auf 0 zurück. (Im AVR Studio Simulator eruiert und durch Realität bestätigt.). Mein Wert wird auf dem LCD also nicht hochgezählt, sondern bleibt immer 0... Hier die Codeschnipsel: Initialisierung der Variable: Code : | |||
| 7 - AVR-GCC Assembler OUT/STS -- AVR-GCC Assembler OUT/STS | |||
| Hi,
Hab hier ein Problem: Ich will den Timer1 meines Prozessors (ATmega48) anspringen lassen, nur passt dem GCC Assembler die Anweisung Code : out TCCR1A, temp nicht: Code : |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 9 Beiträge im Durchschnitt pro Tag heute wurden bisher 2 Beiträge verfasst 8 Besucher in den letzten 60 Sekunden alle 7.50 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |