ingfel
16.02.2007, 12:39
hallo,
ich bin gerade dabei tasterbrett mit dem man mehrere LED gruppen pro taster aktivieren kann zu basteln, zudem werden die gedrückten / aktivierten taster beleuchtet. mein problem bei der sache ist das beim drücken einer taste ab und zu die hintergrundbeleuchtung für mehrere taster angeht. dazu sei gesagt das ich anfänger bin was microcontroller & deren programmierung angeht. folgend mein programm... (reicht der ausschnitt überhaupt ?)
/* Endlosschleife Hauptprogramm */
while (1) {
/* Reset? */
if (key[2][0] & 0x04) {
offtimer = 0;
}
/* Schleife über die 2 Tastergruppen */
for (uint8_t x=1;x<3;x++) {
/* Schleife über die 8 Rows */
for (uint8_t y=0;y<8;y++) {
/* Timer auf 25 sek setzen */
if (key[x][y]) { offtimer = 2500; }
/* Schleife über die 8 Bits (einzelne Taster) */
for (uint8_t bit=0;bit<8;bit++) {
if (key[x][y] & (1<<bit)) {
/* Schleife über die 10 möglichen Zuordnungen */
for (uint8_t u=0;u<30;u++) {
lednr = pgm_read_word(&rel[((x-1)*64) + (y*8) + (bit+1)][u]);
//lednr = rel[((x-1)*64) + (y*8) + (bit+1)][u];
if (lednr) {
ledcol = (lednr / 10);
ledrow = (lednr-(ledcol*10))-1;
ledgroup = ((ledcol-1)/8)+1;
ledbit = ((ledcol-1) % 8);
led[ledgroup][ledrow] |= (1 << ledbit);
}
}
}
}
}
}
}
ich hoffe ihr könnt mir weiterhelfen. finde nach langem probieren keine zufriedenstellende lösung. entprellen der taster mit schleifen in denen hochgezählt wird als beschäftigung, hatte ich auch schon probiert mit dem ergeb. das eine deutliche verbesserung erreicht wurde, beim anschließen der LED gruppen hatten die schleifen keinen erkennbaren einfluss mehr. schon mal vielen dank für jede art der hilfe :) !!!
ich bin gerade dabei tasterbrett mit dem man mehrere LED gruppen pro taster aktivieren kann zu basteln, zudem werden die gedrückten / aktivierten taster beleuchtet. mein problem bei der sache ist das beim drücken einer taste ab und zu die hintergrundbeleuchtung für mehrere taster angeht. dazu sei gesagt das ich anfänger bin was microcontroller & deren programmierung angeht. folgend mein programm... (reicht der ausschnitt überhaupt ?)
/* Endlosschleife Hauptprogramm */
while (1) {
/* Reset? */
if (key[2][0] & 0x04) {
offtimer = 0;
}
/* Schleife über die 2 Tastergruppen */
for (uint8_t x=1;x<3;x++) {
/* Schleife über die 8 Rows */
for (uint8_t y=0;y<8;y++) {
/* Timer auf 25 sek setzen */
if (key[x][y]) { offtimer = 2500; }
/* Schleife über die 8 Bits (einzelne Taster) */
for (uint8_t bit=0;bit<8;bit++) {
if (key[x][y] & (1<<bit)) {
/* Schleife über die 10 möglichen Zuordnungen */
for (uint8_t u=0;u<30;u++) {
lednr = pgm_read_word(&rel[((x-1)*64) + (y*8) + (bit+1)][u]);
//lednr = rel[((x-1)*64) + (y*8) + (bit+1)][u];
if (lednr) {
ledcol = (lednr / 10);
ledrow = (lednr-(ledcol*10))-1;
ledgroup = ((ledcol-1)/8)+1;
ledbit = ((ledcol-1) % 8);
led[ledgroup][ledrow] |= (1 << ledbit);
}
}
}
}
}
}
}
ich hoffe ihr könnt mir weiterhelfen. finde nach langem probieren keine zufriedenstellende lösung. entprellen der taster mit schleifen in denen hochgezählt wird als beschäftigung, hatte ich auch schon probiert mit dem ergeb. das eine deutliche verbesserung erreicht wurde, beim anschließen der LED gruppen hatten die schleifen keinen erkennbaren einfluss mehr. schon mal vielen dank für jede art der hilfe :) !!!