Hallo,
ich wollte ein paar LEDs blinken lassen. Bei den LEDs 0 bis 15 ist mir das auch gelungen. Nur Port 16 und 17 machen mir Sorgen. Port 16 funktioniert, aber nicht mit der auskommentierten Zeile. Geht die sprachinterne Bitverschiebung nur bis zum BIT 15? Und die LED 17 geht gar nicht an. Hardware ist in Ordnung, wenn ich digitalWrite (17,HIGH) eingebe, leuchtet die LED. Was ist falsch?
void setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT); }
void loop()
{
long i;
for (i=0; i<=131071 ; i++)
{
digitalWrite(0, (i&1!=0));
digitalWrite(1, (i&1<<1));
digitalWrite(2, (i&1<<2));
digitalWrite(3, (i&1<<3));
digitalWrite(4, (i&1<<4));
digitalWrite(5, (i&1<<5));
digitalWrite(6, (i&1<<6));
digitalWrite(7, (i&1<<7)!=0);
digitalWrite(8, (i&1<<8)!=0);
digitalWrite(9, (i&1<<9)!=0);
digitalWrite(10, (i&1<<10)!=0);
digitalWrite(11, (i&1<<11)!=0);
digitalWrite(12, (i&1<<12)!=0);
digitalWrite(13, (i&1<<13)!=0);
digitalWrite(14, (i&1<<14)!=0);
digitalWrite(15, (i&1<<15)!=0);
// digitalWrite(16, (i&1<<16)!=0);
digitalWrite(16, (i&65536)!=0);
digitalWrite(17, (i&1<<17)!=0);
digitalWrite(17, (i&131072)!=0);
delay (10);
}}