PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gerade/ungerade aufwärts zählen bei 8535



wheelchair
11.03.2006, 16:25
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 ungerade (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

SprinterSB
13.03.2006, 09:03
Das Zählen in Einerschritten sollte klar sein:


var = (var+1) & 0xf; // 0,1,2...15,0,1,...


Für die anderen Werte geht z.B. (ist wohl am schnellsten)

var = (var+1) & 0xf; // 0,1,2...15,0,1,...
var2 = (var & 7) << 1;
if (var & (1 << 3))
var2 |= 1;