Mi scuso per essere stato esente dal post per tanto tempo ma avevo da studiare.. taaanto da studiare, allora: ho risolto tutti i problemi,ho ricreato il programma su consiglio di un mio prof, ovvero: crea un programma che sai usare,leggere e riconoscere.
a quel punto io ho creato questo:
int i;
uint8_t buf[8] = { 0 }; /* Keyboard report buffer */
uint8_t a[8]= {0,0,0,0,1,0,0,0};
uint8_t w[8]= {0,0,0,1,1,0,1,0};
uint8_t s[8]= {0,0,0,1,0,1,1,0};;
uint8_t d[8]= {0,0,0,0,0,1,1,1};;
uint8_t space[8]={0,0,1,0,1,1,0,0};;
uint8_t q[8]= {0,0,0,1,0,1,0,0};;
//QUA CI SONO LE PREMESSE
void setup()
{
Serial.begin(9600);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
}
//QUI C'è IL MAIN
void loop()
{
char carattere[6];
carattere[0] = digitalRead(6);
carattere[1] = digitalRead(7);
carattere[2] = digitalRead(8);
carattere[3] = digitalRead(9);
carattere[4] = digitalRead(10);
carattere[5] = digitalRead(11);
type(carattere);
}
// QUI INIZIA LA FUNZIONE CHE CONVERTE IN CHAR
void type(char *str)
{
char *chp = str;
while (*chp) {
switch (*chp) {
case '1':
for(i=0;i<8;i++)
{ buf[i]= a[i];
} // a
break;
case '2':
for(i=0;i<8;i++)
{ buf[i]= w[i];
} // w
break;
case '4':
for(i=0;i<8;i++)
{ buf[i]= s[i];
}// s
break;
case '8':
for(i=0;i<8;i++)
{ buf[i]= d[i];
}// d
break;
case '16':
for(i=0;i<8;i++)
{ buf[i]= space[i];
} // space
break;
case '32':
for(i=0;i<8;i++)
{ buf[i]= q[i];
}// q
break;
default:
/* Character not handled. To do: add rest of chars from HUT1_11.pdf */
//buf[2] = 0x37; // Period
break;
}
}
Serial.write(buf,8); // Send keypress
for(i=0;i<8;i++)
{ buf[i]= 0;}
}
adesso che mi sono chiarito le idee su alcune cose programmo e riprogrammo l'atmel abbastanza facilmente e velocemente... unico piccolo problema... il programma... non funziona.....premo un pulsante e non scrive...
qualche aiuto ?
tra pochi giorni ho l'esame D: