Gefunden für avr interrupt timer1 - Zum Elektronik Forum |
| 1 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
| |||
| 2 - 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 ]... | |||
3 - 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... | |||
| 4 - 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 : |
|
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 1 Besucher in den letzten 60 Sekunden alle 60.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |