2 AtMega über 2 Draht

Gast #346789
Hallo zusammen,
ich habe folgendes Problem:Ich habe 2 Atmega über eine 2
Drahtverbindung miteinander verbunden. Der eine Atmega generiert über
die eine Leitung ein Clock Signal und über die andere Werden Bits
gesendet. Der zweite Atmega ließt bei jeder steigenden Flanke (externer
Interrupt) des Clock Signals den Datenkanal aus. Leider bekomme ich nie
den richtigen "wert" angezeigt. Die Ausgabe ist immer 0 oder 1. Woran
kann es liegen????

Interrupt Routine des 2. Controllers der die Daten auslesen soll.
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
    merker=1;
    if(PIND.4)
    {
        wert=0x01;
    }
    else
    {
        wert=0x07;
    }

Mainroutine der den Wert der Interrupt Routine ausgeben soll:

     if(merker){
    merker=0;
     if(PIND.4)
    {
        wert=0x01;
    }
    else
    {
        wert=0x07;
    }
    }
    printf(" %3x\n\r",wert);

Das Signal ist richtig welches über die Leitungen geht, dass habe ich
mit dem Oszi angeschaut. Die I2C Leitungen werden schon andersweitig
genutzt.
Danke für eure Hilfe
Gast
Oh das ist ein Fehler unterlaufen, die Main outine muß heißen:

Mainroutine der den Wert der Interrupt Routine ausgeben soll:

     if(merker)
    {
    merker=0;
    printf(" %3x\n\r",wert);
    }
Schon. Aber hats du den auch noch 'volatile' gemacht?

Zeig doch mal ein bischen mehr Code als bisher.
Ideal wäre es, wenn du soviel posten würde, dass wir das
theoretisch compilieren, in 2 ATMegas brennen und testen
könnten. Nimm aus deinem Pgm alles an Funktionalität raus,
was nicht unmittelbar mit der reinen Übertragung zu tun hat
und poste das mal. Aus einem Code-Schnipsel alleine ist es
meist nur sehr schwer möglich irgendwelche Dinge herauszulesen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.