www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC ISR C Programmierung


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#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

}

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, das hat Klarheit geschaffen, danke :)

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>#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.
#inlcude <avr/signal.h>
#include <avr/interrupt.h>

Autor: Angel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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ß

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Angel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Lutz,

ich war schon mehr mal auf dieser Seite. Allerdings stimmt immer noch 
etwas nicht bei mir, da es nicht richtig läuft :-(

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Kristallkugel sagt: fehler in Zeile 42

Und bitte. Hijacke nicht alte Threads. Mach einen neuen auf.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.