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




Ersatzteile bestellen
  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 :
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 :

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Avr Timer1 Ocr1aa=0 eine Antwort
Im transitornet gefunden: Avr Timer1


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!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 6 Beiträge im Durchschnitt pro Tag       heute wurden bisher 13 Beiträge verfasst
© x sparkkelsputz        Besucher : 192428179   Heute : 3633    Gestern : 4247    Online : 218        24.7.2026    23:54
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb ycvb
0.0339941978455