Hallo bin relativ ungeübt in Sachen µC und habe direkt ein Problem. Wollte I2C Bus abhören und habe meinen eigenen Code geschrieben ------------------------ #include <tiny2313.h> #include <delay.h> #include<io.h> #include<C:\Programme\cvavreval\inc\stdio.h> int start=0, index, zeichen[], i; // External Interrupt 1 service routine interrupt [EXT_INT1] void ext_int1_isr(void) { index++; if(PIND &(1<<2)) zeichen[index]=1; if (!(PIND &(1<<2))); zeichen[index]=0; putchar(zeichen[index]); } void main(void) { DDRD=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: On // INT1 Mode: Rising Edge // Interrupt on any change on pins PCINT0-7: Off GIMSK=0x80; MCUCR=0x0C; EIFR=0x80; // Universal Serial Interface initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x06; UBRRH=0x00; UBRRL=0x67; // Global enable interrupts #asm("sei") while (1) { if (!(PIND & (1<<3))) { if (PIND & (1<<2)) { start=1; do { } while(index==52); for (i=1;i==51;i++) { putchar(zeichen[i]); delay_ms(50); } } } }; } ---------------------------- Das Programm soll zuerst die Startbedingung erkennen und dann beim nächsten Takt ein Interrupt auslösen, wo die Daten in ein Array geschrieben werden. Dannach werden sie nach und nach per UART an den Rechner gegeben an der Stelle hackt es, die Daten wollen einfach nciht ins Array. Gibts da irgendein Trick bei, oder mach ich was falsch. Die While-Schleife im Main Teil ist nur zum abwarten bis alle Daten gesendet wurden. Hoffe ihr Überblickt das Prog. Benutze den TINY2313+ STK500+ 16MHz+ codevision PD3 -> Takt PD2 -> Data Danke schon mal für die Antworten! Gruß Micha
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.