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