Hallo, ich habe mir als neuling das das Pollin Board mit Addon Bestellt und nun das C-Tut Hier im Forum durchgelesen und das zum Pollin Board http://www.mikrocontroller.net/articles/Pollin_Funk-AVR-Evaluationsboard durchgearbeitet. nun möchte ich zwei Programme auf ein AVR zusammen laufen lassen erstmal zweimal Tasty aber ich bekomme es nicht hin:-( wen Taster 1 gedrückt ist sollen Led2 an gehen und Led1 aus. wenn Taster 2 gedrückt ist dann soll Led4 angehen und Led3 aus wird Taster 2 losgelassen sollen nach 2sec der ursprüngliche Led zustand wieder eingenommen werden. einzeln bekomme ich es hin aber nicht wenn Beide zusammen laufen. müssen 2x while sein oder wie muss das aus sehen? besten dank schonmal
Zwei Programme? Nein, definitiv nicht! Du musst dir das ganze in einer Schleife zusammenbasteln. Multitasking gibt es auf ATmegas nicht wirklich. Wäre auch Blödsinn. Schau nochmal ins Tutorial. Ich glaube da fehlt was am grundlegenden Verständnis. Wenn ich das Problem missverstanden habe, einfach her mit dem Quelltext und den Wünschen, was der machen soll.
@Neuling (gast) Erst mal 'Willkommen' im Forum. 'Zwei Programme' ist etwas mißverständlich ausgedrückt. Das Zauberwort für Deine Anwendung lautet wohl 'Fallunterscheidung', schau mal hier in diesem Tutorial nach http://www.mikrocontroller.net/articles/AVR-Tutorial:_Mehrfachverzweigung
Testfall schrieb: > Zwei Programme? > Nein, definitiv nicht! > > Du musst dir das ganze in einer Schleife zusammenbasteln. Multitasking > gibt es auf ATmegas nicht wirklich. Wäre auch Blödsinn. Schau nochmal > ins Tutorial. Ich glaube da fehlt was am grundlegenden Verständnis. > > Wenn ich das Problem missverstanden habe, einfach her mit dem Quelltext > und den Wünschen, was der machen soll. Also ich habe das in Zwei Programmen ausprobiert und versucht es zu einem zusammen zu fügen nur es macht nur das vom Taster1 hier mal das was ich probiert habe /* Atmega16 Externer Quarz-Oszillator: 16 MHz Pollin Funk-AVR-Evaluationsboard v1.1 */ #include <avr/io.h> #include <util/delay.h> // LEDs sind high-active geschaltet #define LED_AN(LED) (PORTD |= (1<<(LED))) #define LED_AUS(LED) (PORTD &= ~(1<<(LED))) #define LED_TOGGLE(LED) (PORTD ^= (1<<(LED))) #define LED1 PD6 #define LED2 PD5 #define LED3 PD4 #define LED4 PD3 // TASTER ist high-active geschaltet #define TASTER1 PB1 #define TASTER1 PB2 #define TASTER_GEDRUECKT(TASTER) (PINB & (1<<TASTER)) int main(void) { DDRB &= ~(1<<TASTER1) | (1<<TASTER2); // Port B: Eingang für Taster DDRD |= (1<<LED1) | (1<<LED2) | (1<<LED3) | (1<<LED4); // Port D: Ausgang für LED1 und LED2 while(1) { if (TASTER_GEDRUECKT(TASTER1)) { LED_AN(LED2); LED_AUS(LED1); } else { LED_AUS(LED2); LED_AN(LED1); } if (TASTER_GEDRUECKT(Taster2)) { LED_AN(LED4); LED_AUS(LED3); } else { _delay_ms(2000); LED_AUS(LED4); LED_AN(LED3); } } } Danke schonmal es sind gute tuts hier
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.