Gast
#1246558
Hallo. Ich würde mich jetzt mal als neuling in der C-Welt bezeichen und habe bei einem simplen Programm ein Problem. Das Mainprogramm ruft zwar die Funktion auf aber die Übergabewerte passen iregnwie net. Der Reale test geht auch net...genau wie die simulation. Ist es normal das ich im AVR-Studio kein "Inelisence"(wie das auch immer geschreiben wird)habe? Hab ich was vergessen..? Danke im vorraus. PS. Die Codeirung ergiebt sich aus dem Aufbau und bei direkter Ansteuerung geht es. #include <avr/io.h> #include <stdint.h> #ifndef F_CPU #define F_CPU 6000000 #endif #define UART_BAUD_RATE 9600 #include <avr/io.h> #include <util/delay.h> void Ausgabe7Seg(int Digit,int Wert) { switch(Digit) { case 1:PORTC = (1<<PC0);break; case 2:PORTC = (1<<PC2);break; case 3:PORTC = (1<<PC4);break; case 4:PORTD = (1<<PD7);break; default:PORTD = (1<<PD7);break; } switch(Wert) { case 0: PORTC = (1<<PC3); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD4)|(0<<PD0)|(0<<PD3);break; case 1: PORTD = (0<<PD6)|(0 <<PD4);break; case 2: PORTC = (1<<PC3)|(0<<PC1); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD4)|(0<<PD0)|(0<<PD3);break; case 3: PORTC = (0<<PC1); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD3)|(0<<PD0);break; case 4: PORTC = (0<<PC1); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD4)|(0<<PD0);break; case 5: PORTC = (1<<PC3)|(0<<PC1); PORTD = (0 <<PD5)|(0 <<PD4)|(0<<PD0);break; case 6: PORTC = (1<<PC3)|(0<<PC1); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD4)|(0<<PD0)|(0<<PD3);break; case 7: PORTC = (1<<PC3)|(0<<PC1); PORTD = (0 <<PD4)|(0<<PD0)|(0<<PD3);break; case 8: PORTC = (1<<PC3)|(0<<PC1); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD4)|(0<<PD0)|(0<<PD3);break; case 9: PORTC = (1<<PC3)|(0<<PC1); PORTD = (0 <<PD5)|(0<<PD6)|(0 <<PD4)|(0<<PD0);break; default:PORTC = (0<<PC1);break; } } int main (void) { DDRC = (1<<PC0)|(1<<PC2)|(1<<PC4); DDRD = (1<<PD7); while(1) { Ausgabe7Seg(3,2); } return 0; }