Hallo liebe Community
Ich habe ein Problem und zwar möchte ich gerne einen Source Code meinem Projekt anpassen aber bin dabei auf ein Problem gestoßen, welches mein Fähigkeiten übersteigt.
Am besten ich poste einfach mal den Code Fetzen:
//Seqencer stepping.
digitalWrite(SEQ_STP1,LOW);
digitalWrite(SEQ_STP2,LOW);
digitalWrite(SEQ_STP3,LOW);
digitalWrite(SEQ_STP4,LOW);
digitalWrite(SEQ_STP5,LOW);
digitalWrite(SEQ_STP6,LOW);
digitalWrite(SEQ_STP7,LOW);
digitalWrite(SEQ_STP8,LOW);
digitalWrite(SEQ_STP9,LOW);
digitalWrite(SEQ_STP10,LOW);
digitalWrite(SEQ_STP11,LOW);
digitalWrite(SEQ_STP12,LOW);
digitalWrite(SEQ_STP13,LOW);
digitalWrite(SEQ_STP14,LOW);
digitalWrite(SEQ_STP15,LOW);
digitalWrite(SEQ_STP16,LOW);
stp_cnt = stp_cnt & 0x07;
switch(stp_cnt){
case 0:
digitalWrite(SEQ_STP1,HIGH);
break;
case 1:
digitalWrite(SEQ_STP2,HIGH);
break;
case 2:
digitalWrite(SEQ_STP3,HIGH);
break;
case 3:
digitalWrite(SEQ_STP4,HIGH);
break;
case 4:
digitalWrite(SEQ_STP5,HIGH);
break;
case 5:
digitalWrite(SEQ_STP6,HIGH);
break;
case 6:
digitalWrite(SEQ_STP7,HIGH);
break;
case 7:
digitalWrite(SEQ_STP8,HIGH);
break;
case 8:
digitalWrite(SEQ_STP9,HIGH);
break;
case 9:
digitalWrite(SEQ_STP10,HIGH);
break;
case 10:
digitalWrite(SEQ_STP11,HIGH);
break;
case 11:
digitalWrite(SEQ_STP12,HIGH);
break;
case 12:
digitalWrite(SEQ_STP13,HIGH);
break;
case 13:
digitalWrite(SEQ_STP14,HIGH);
break;
case 14:
digitalWrite(SEQ_STP15,HIGH);
break;
case 15:
digitalWrite(SEQ_STP16,HIGH);
break;
}
stp_cnt++;
delay(tmp_bpm);
Das Ganze ist im void loop drinne und soll LEDs als lauflicht sozusagen aufblinken lassen die länge, wie lange sie aufleuchten und in welchem abstand wird über 2 Potis kontorliert.
So, jetzt bin ich aber über folgendes Problem gestolpert: der Code war uhrsprünglich nur für 8 schritte (0-7) gedacht, ich habe es jetzt aber auf 16 (0-15) erweitert und komme jetzt mit der Bitwise Operation nicht klar, die dort verwendet wurde
stp_cnt = stp_cnt & 0x07;
könnte mir dabei vielleciht jemand helfen ? XD
Danke schonmal !
Achja, bevor ich es vergesse, ich habe einen Arduino Mega 2560 und es gibt ja einen bestimmten Programmblock, der sieht ungefär so für den Mega 1280 aus:
TCCR3A = _BV(COM3C1) | _BV(WGM30);
TCCR3B = _BV(CS30);
TIMSK3 = _BV(TOIE3);
Dieser erhöht ja die frequenz der Pulsweitenmodulation, allerings weiß ich nicht wie dieser für den Mega 2560geht und ich finde ihn auch nitgends, kann mir da vielleicht jemand helfen?