Hallo Männer, folgendes Problem, ich möchte in C ein Programm für nen ATtiny26 schreiben, daß im wesentlichen einen AD-Wert mit Interrupt ermittelt und je nach dem wie groß der Wert ist eine bestimmte Zeit wartet. Da ich nich so der C-Blicker bin tu ich mich etwas schwer, allerdings nur in Sachen Interrupt. In Assembler wars ja so, daß es die ISR für ADC bzw. Timer irgendwo stand und automatisch angesprungen wurde. Wie muß ich das nun in C anstellen, daß wenn ich die Interrupts freigegeben habe und der AD-Wandler gestartet wurde, das Programm wenn der ADC fertig ist die "ISR" anspringt und wo schreib ich das dann hin? Weil in dem Tutorial daß ich für AVR in C ausgegraben wird da nich so viel drüber gesagt, als daß ich es verstehen würde??? ... macht mich echt ganz schön ratlos das ganze ... Cool wär natürlich auch ein Beispielprogramm :). Besten Dank. Gruß Jens
#Inlcude <Avr/Signal.h> #Include <Avr/Interrupt.h> int main (void) { //musst ADC aktivieren und so steht alles genau im Datenblatt } SIGNAL (SIG_ADC) //ISR wenn Wert fertig gewandelt { //zum Beispiel x=ADCL; //Je nach Einstellung 8niedrigen BITS in x speichern y=ADCH; 8 höheren in y speichern }
>#Inlcude <Avr/Signal.h> >#Include <Avr/Interrupt.h> Bitte so nicht! Das kann je nach make/shell ganz mächtig in die Hose gehen, und beim Präprozessor wirds das ganz sicher.
1 | #inlcude <avr/signal.h>
|
2 | #include <avr/interrupt.h> |
Hallo Männer UND Frauen, ich programmiere gerade auf dem ATmega128. Dieser befindet sich auf einem Sensorknoten. Ich legen den Mikrocontroller schlafen und versuche gerade ihn durch das Drücken eine Button (also durch einen Interrupt) wieder wecken, bzw etwas ausführen lassen. Leider kenne ich mich mit Interrupts nicht wirklich aus und weiß daher nicht, welchen Quellcode ich an welche Stelle schreiben muss... Kann mir da jemand weiter helfen? Gruß
Danke Lutz, ich war schon mehr mal auf dieser Seite. Allerdings stimmt immer noch etwas nicht bei mir, da es nicht richtig läuft :-(
Meine Kristallkugel sagt: fehler in Zeile 42 Und bitte. Hijacke nicht alte Threads. Mach einen neuen auf.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.