hallo! möchte gerne mehrere dinge auf einmal erledigen.... zb: tastatur (matrix) einlesen,TWI lesen/schreiben,LCD-ausgabe....) d.h.: die durchlaufzeit darf nicht länger als 30 ms betragen. wie realisiert man so etwas in C (AVR-STUDIO). programmiere momentan auf einen mega 32L. gibt es irgenwo info's, buch od. dergleichen, wo man sich einlesen kann, wie so etwas aufgebaut wird. danke papua
Hallo Papua, es gibt ein schönes Buch von Labrosse über uC/OS-II. Der hat auch eine Firma gegründet: http://www.micrium.com/ Dort bekommst Du den SourceCode für den AVR-Port. Das Buch brauchst Du aber trotzdem. Ein anderes Betriebssystem ist von Adam Dunkels: http://www.sics.se/contiki/ oder auch www.freertos.org Selber entwickeln würde ich nur im Ausnahmefall. Gruß Olaf
Hallo, Tastatur sollte unkritisch sein, das erledigt ein 10ms Timer-IRQ doch in recht wenigen Taktzyklen und sagt Bescheid, welche Taste erkannt wurde. TWI ist prinzipbedingt relativ langsam, die Frage ist hier, um welche Datenmengen in welcher Zeit es geht. LCD kann eine Rolle spielen, wenn es um ein Grafik-Display geht, auf dem oft viel aktualisiert wird. Was soll nicht länger als 30ms dauern? Der Durchlauf der main mit der Abarbeitung der Events? Das liegt in Deiner Hand und hängt davon ab, was Du da machen willst. Ob man dazu ein OS braucht wage ich nach Deinen Angaben nicht zu beurteilen. Gruß aus Berlin Michael
Egal, welches BS man einsetzt, schneller wird es dadurch nicht. Für die paar Aufgaben reicht ein klassischer Programmaufbau mit ein- oder zwei Timer-ISR's und einer main-loop locker aus. Ganz ohne Echtzeit-Betriebssystem. Und was genau nicht länger als 30ms dauern darf, ist noch zu definieren. Weder Reaktion auf eine Tasteneingabe noch die LCD-Ausgabe benötigen solch eine Zykluszeit, TWI läuft eh interruptgesteuert, da bleibt schon gar nichts mehr... Oliver
@ Papua Papuadive (Firma: pap) (papua) >möchte gerne mehrere dinge auf einmal erledigen.... jaja, die Jungend ;-) >zb: tastatur (matrix) einlesen,TWI lesen/schreiben,LCD-ausgabe....) >d.h.: die durchlaufzeit darf nicht länger als 30 ms betragen. Hust Und dieses Schleichen nennst du zeitkritisch? >wie realisiert man so etwas in C (AVR-STUDIO). >programmiere momentan auf einen mega 32L. Siehe Multitasking, ist ein Beispiel für den AVR dabei als Ansatz. Ausserdem sollte man sich mit dem Thema Interrupt befassen. >gibt es irgenwo info's, http://www.apostroph.de MFG Falk
Papua Papuadive schrieb: > hallo! > möchte gerne mehrere dinge auf einmal erledigen.... > zb: tastatur (matrix) einlesen,TWI lesen/schreiben,LCD-ausgabe....) Tasten einlesen, entprellen und Flanke erkennen im Timerinterrupt, I2C im I2C-Interrupt, LCD im Main oder im Hintergrund per Timerinterrupt. LCD aber nur alle 200ms aktualisieren, sonst wird der Betrachter nervös. Peter
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.