Gefunden für avr timer1 ocr1aa=0 - Zum Elektronik Forum |
| 1 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
| |||
| 2 - 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... | |||
3 - 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 ]... | |||
| 4 - Rechteckgenerator mit ATmega8 \"verschluckt sich\" -- Rechteckgenerator mit ATmega8 \verschluckt sich\ | |||
| Hallo AVR-Experten!
Heute habe ich auch mal ein kleines Problem. Es ist zwar überhaupt nicht kritisch, aber ich hätte es gern prinzipiell geklärt und möchte auch etwas dabei lernen. Kleine Vorgeschichte: Ich habe auf meiner Arbeitsstelle ein kleines Prüfgerät für die Antriebselektronik von Turbomolekularpumpen gebastelt. (Das sind, vereinfacht gesagt, mit 1500 Umdrehungen pro Sekunde laufende Ventilatoren... ) Diese haben zur Rückmeldung ihrer Drehung zwei Hallelemente eingebaut, deren Signale die Elektronik auswertet. Da ich bei der Überprüfung der Steuerteile die angeschlossene Pumpe nur simuliere, muß ich auch diese Hall-Signale nachbilden. Dazu brauche ich einen "Tongenerator", der zwei symmetrische und komplementäre Rechteckfolgen von ~0 bis etwa 4 kHz ausgibt.
Zunächst hatte ich eine Schaltung mit einem 556 gebastelt, die auch prinzipiell funktionierte. Nur war es leider so, daß die Frequenz nach oben hin extrem schnell zunahm. Dabei hätte ich mir schon eine gleichmäßigere Zunahme gewünscht, um im besonders interessierenden Bereich (Signalisierung von Drehzahl > 50 % bzw. Abschaltung der Pumpe bei zu hoher Drehzahl) feinfühliger einstellen zu können. Da hatte ich die Idee, einen (für dies... | |||
| 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 6 Beiträge im Durchschnitt pro Tag heute wurden bisher 13 Beiträge verfasst 2 Besucher in den letzten 60 Sekunden alle 30.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |