hallo möchte in WinAVR ein ansteuerung des Multiplexers (4 Steuerltg) programmieren. µC ist ein AT90S8535 Er soll mehrere Modi haben: 1. 0-15 zählen 2. zuerst die gerade (0,2,..) und dann die ungeraden (1,3,...) aufwärts zählen. Wie programmiert man, dass der Atmel zuerst gerade und dann ungerade zählt? Die Auswahl der Modi wird mit enum realisiert. #include <avr-port-enum.h> enum SCANMODE { 1; 2; }; unsigned char ScanWerte; switch (ScanWerte) { case 1; break; case 2; break; } habe ich dabei etwas vergessen? mfg
Schließ doch einfach den MUXER richtig rum an. Oder vertausch die Drähte in Software:
1 | // exchange bit order: 3210 -> 2103
|
2 | unsigned char mux_exchange( unsigned char mux ) |
3 | {
|
4 | return ((mux << 1) & 0x0E) | ((mux >> 3) & 0x01); |
5 | }
|
Peter
> 1. 0-15 zählen > 2. zuerst die gerade (0,2,..) und dann die ungeraden (1,3,...) > aufwärts zählen. > > Wie programmiert man, dass der Atmel zuerst gerade und dann > ungerade zählt? Indem du nicht 1 sondern immer 2 dazuzaehlst. Wenn Du jetzt bei 1 anfaengst, dann zaehlt er: 3, 5, 7, 9, 11, 13, 15 Bei 15 setzt du den Zaehler zurueck, aber nicht auf 1 sondern auf 2. Dann zaehlt er: 2, 4, 6, 8, 10, 12, 14 Bei 14 setzt du ihn wieder zurueck, diesmal aber auf 1. Dann zaehlt er weiter: 1, 3, 5, 7, 9, 11, 13, 15 15: ruecksetzen auf 2 2, 4, 6, 8, 10, 12, 14 14: rucksetzen auf 1 1, 3, 5, 7, 9, 11, 13, 15 usw. usw. War doch gar nicht so schwer, oder?
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.