Gefunden für avr timer compare - 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 - GSM-Fernschalter Funktionen verändern über µC? -- GSM-Fernschalter Funktionen verändern über µC?
Hallo,

Da ich noch in den Kinderschuhen stecke was µC Betrifft, bräuchte ich
eure Hilfe. Habe ein Problem, ich würde gerne ein GSM Fernschaltmodul
von Elektor aufbauen hier
http://www.elektor.de/jahrgang/2008/november/gsm-f...
ist das Projekt einmal beschrieben. Nun ist es dort so das beim
ansteuern das ersten Relais vom µC ATmega8 nur eine Sekunde geschaltet
wird. Da ich am ersten Ausgang aber gerne die Standheizung für ca. 1800
Sekunden (30 Minuten) ansteuern würde, wollte ich fragen ob es möglich
ist die Firmware die es bei Elektor zum Download gibt dahin gehend um
zuschreiben?
Meine Überlegung:

Der Standard ist folgender:
Exit1 Lässt sich immer nur für eine Sekunde ansteuern.
Exit2 ist Toggelfähig und kann per Jumper umgeschaltet werden auf eine
Sekunde ansteuern
Exit3 ist über einen Timer der am µC angeschlossen ist Steuerbar dort
lässt sich zwischen 1, 5, 10, 15, 20, 30, 45, 60, 90 und 120 Minuten
schalten.

So hätte ich es gerne:
Kann man den AVR so umschreiben / Was muss ich umschreiben das:
EXIT1 den Timer bekommt (halt darüber die Dauer...








3 - Rechteckgenerator mit ATmega8 \"verschluckt sich\" -- Rechteckgenerator mit ATmega8 \verschluckt sich\
Ich verstehe auch nicht ganz, warum das OCR immer neugeschrieben wird. Dabei kann es zu solchen Sprüngen kommen!

Mach doch einen Vergleich mit dem alten Wert des ADUs, und nur wenn der sich wirklich geändert hat, dann auch OCR updaten. Sonst ist das murks.

Wenn z.b. der Timer TCNT auf 10 steht, und der neue Wert auf 9 gesetzt wird, dann rattert der bis 0xffff durch. Da entstehen die Fehler.

Zudem würde in solchen Fällen eine Simulation helfen. Du kannst auch durch Basic erzeugte Objektdateien im AVR-Studio laden und simulieren.

Edit2:
Das Highbyte muss zuerst geschrieben werden, ist hier aber auch korrekt gemacht worden.

Ich würde dafür sorgen, z.b. im Compare-Match Interrupt, dass erst nach diesem Interrupt ein neuer Vergleichswert geladen werden darf.




[ Diese Nachricht wurde geändert von: DonComi am 20 Mär 2008 19:15 ]

[ Diese Nachricht wurde geändert von: DonComi am 20 Mär 2008 19:16 ]

[ Diese Nachricht wurde geändert von: DonComi am 20 Mär 2008 19:17 ]...
4 - PWM beim ATMega 8 -- PWM beim ATMega 8
Hallo Leute,

ich möchte einen Servo mit einem Atmega8 ansteuern. Damit das Ausgangssignal so genau wie möglich ist, wollte ich die Compare Unit vom 16Bit Timer nutzen. Wenn ich das Datenblatt richtig verstanden habe, kann die Unit direkt auf ein Ausgangspin zugreifen und ich wäre nicht mehr Softwareabhängig. (Prozessor läuft mit 1MHz)

Es sollte so ablaufen:
Ich schreibe in OCR1AH / OCR1AL einen Wert. Lösche den Timer (TCNT1H / TCNT1L). Und setze den Ausgang (B1) auf „1“. Wenn der Vergleicher abgelaufen ist, soll er den Ausgang wieder auf „0“ setzen (nach 1,5ms). Nach etwa 20ms (dieser Teil des Programms ist noch nicht fertig) soll wieder alles von vorn beginnen.
Im AVR-Studio funktionert es, aber am Prozessorausgang liegt immer „0“ an!
Besser gesagt: ich habe es so geschrieben, dass es im AVR-Studio läuft!

Das die Lösung im Datenblatt liegen könnte, weiß ich! Es sind nur eine Menge Seiten und alle auf Englisch. Falls mir also jemand direkt eine Lösung vorschlagen kann, wäre das sehr hilfreich.

Mein Testprogramm:

.NOLIST
.INCLUDE "C:\m008def.inc"
.LIST

.def Temp1 = R16
.def Temp2 = R17
.def Data = ...
5 - DMX-Dimmer: DMX auslesen und Phasenanschnitt zu gleich? -- DMX-Dimmer: DMX auslesen und Phasenanschnitt zu gleich?

Die Timer-counter laufen von selbst, haben entweder 8 oder 16 bit und werden vom Prozessortakt über einen programmierbaren Vorteiler oder extern übner einen Eingang getaktet. Wenn du nichts resettest überläuft der Zähler einfach beim Maximalwert und beginnt wieder von 0. Resetten heisst ganz einfach das Zählerregister mit irgendeinem Startwert überschreiben.

Damit die Timer so laufen wie man es braucht müssen sie passend initialisiert werden. Welche Register genau welche Daten bekommen sollen steht ausführlich im Datenblatt das gerne vollständig gelesen werden möchte.

Interruptroutinen sind kleine Programmteile die aufgrund vordefinierter Ereignisse sofort ausgeführt werden wenn ebendieses Ereignis auftritt. Die Ausführung des restlichen Programms wird dabei so lange unterbrochen. In einem AVR gibt es eine Vielzahl von Interruptquellen, wie z.B. Timer overflow(Timer überläuft Maximalwert), timer compare match (timer-zähler erreicht vordefinierten Wert), Pin change interrupt(Zustand eines I/O- Pins ändert sich) und noch sehr viele mehr. Interrupts sind immer dann sehr nützlich wenn man zu einem bestimmten Zeitpunkt oder nach einem bestimmten Ereignis etwas tun muss, aber nicht dauernd durch Statusabfragen Zeit Rechenzeit verheizen möchte/darf. ...

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Avr Timer Compare eine Antwort
Im transitornet gefunden: Avr Timer Compare


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 13 Beiträge im Durchschnitt pro Tag       heute wurden bisher 2 Beiträge verfasst
© x sparkkelsputz        Besucher : 185864636   Heute : 6196    Gestern : 26182    Online : 328        19.10.2025    5:54
24 Besucher in den letzten 60 Sekunden        alle 2.50 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb ycvb
0.0684349536896