| |
| | #1 (permalink) Top |
| User Data registr.: 16-11-2008 Residenza: Riva del Garda - TN
Messaggi: 429
|
oooooooooooooooooooooooooooooooooooooook, vaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaa bene ![]() ora provo con il metodo degli array (si sono duro di testa ) poi magari riprovo coi cicli cercando anche altri esempi online perchè non ho mai fatto come hai detto tu ![]() grazie a tutti intanto, vi farò sapere se funziona ![]() ciao lol21 |
| | |
| | #2 (permalink) Top |
| User Data registr.: 06-08-2007 Residenza: Empoli
Messaggi: 1.813
|
Ho guardato un po' il codice e devo dire che con un ciclo FOR non risolveresti: hai delle eccezioni da gestire che riguardano i casi 'somma', voglio dire i valori 3,5,6,9 che non sono diretta potenza di 2. Probabilmente hai già una buona riduzione del codice raccogliendo tutti i casi in una funzione che richiamerai da tutto il codice. ad esempio unsigned int function check_porta() { switch(PORTA) { case 1: return 1; case 2: return 2; case 3: return 9; etc etc } } Nel codice scriveresti, per esempio: arciereb[freb] = check_porta(); Attenzione che comunque hai un paio di eccezioni, come qui: case 6: arciereb[freb] = 0; freb = freb-1; break; in questo caso devi comunque controllare porta==6 e decrementare freb Non conoscendo bene il funzionamento, non credo che si possa fare sempre dentro la funzione. Ma insomma, vedi tu...
__________________ ....... |
| | |
| | #3 (permalink) Top |
| User Data registr.: 16-11-2008 Residenza: Riva del Garda - TN
Messaggi: 429
|
per il case 6 infatti mettevo un if il fatto che non siano potenze di 2 in realtà è perchè per alquni tasti uso un solo bit acceso per altri anche 2 ad esempio case 1 (0b00000001) case 2 (0b00000010) case 4 (0b00000100) ... case 3 (0b00000011) da quì non sono più potenze di 2 uso questo modo per non usare pin eccessivi. grazie dell'aiuto, appena ho un po di tempo butto giù il codice completo ciao lol21 |
| | |
| | #4 (permalink) Top | |
| User Data registr.: 06-08-2007 Residenza: Empoli
Messaggi: 1.813
| Citazione:
__________________ ....... | |
| | |
| | #6 (permalink) Top | |
| User Data registr.: 16-11-2008 Residenza: Riva del Garda - TN
Messaggi: 429
| Citazione:
![]() non mi ricordavo scusa, grazie dell'aiuto i tasti sono 16 e non sono in matrice (attualmente )ora appena arriva la nuova millefori faccio già la tastiera, la collego tranite strep ma questo non dovrebbe importare. signori e signori, sono fiero di presentarvi lo schema della tastiera ![]() ![]() Grazie ancora a tutti dell'aiuto e della risposta tempestiva ciao lol21 | |
| | |
| | #7 (permalink) Top |
| User Data registr.: 06-08-2007 Residenza: Empoli
Messaggi: 1.813
|
Embè??? ![]() Hai fatto il 90% del lavoro ![]() Metti a 1 un pin delle colonne e verifichi se uno dei 4 pin delle righe è a 1. La combinazione riga-colonna ti dice il tasto. Qual'è il problema???
__________________ ....... |
| | |
| | #8 (permalink) Top | |
| User Data registr.: 29-11-2002 Residenza: Mountain View, CA
Messaggi: 4.390
| Citazione:
Codice: // MAXPAGLIONI e' il numero massimo di paglioni
int mask, i;
if (PORTA)
for (mask=1, i=1; mask < (1 << MAXPAGLIONI); mask = mask << 1, i++)
if (PORTA & mask) break;
// al termine del ciclo, i contiene il numero del paglione colpito
__________________ The number you dialed is imaginary. Please rotate your phone 90 degrees and redial. | |
| | |
| | #9 (permalink) Top |
| User Data registr.: 29-11-2002 Residenza: Mountain View, CA
Messaggi: 4.390
|
Anzi, meglio ancora e più efficiente: Codice: // MAXPAGLIONI e' il numero massimo di paglioni
int mask, i;
if (PORTA)
for (mask=1, i=1; i < MAXPAGLIONI+1; mask = mask << 1, i++)
if (PORTA & mask) break;
// al termine del ciclo, i contiene il numero del paglione colpito
__________________ The number you dialed is imaginary. Please rotate your phone 90 degrees and redial. |
| | |
| | #10 (permalink) Top | |
| User Data registr.: 06-08-2007 Residenza: Empoli
Messaggi: 1.813
| Citazione:
i < MAXPAGLIONI+1; è inefficiente. Fai una somma ad ogni ciclo. piuttosto: i <= MAXPAGLIONI;
__________________ ....... | |
| | |
![]() |
| Bookmarks |
| |
Discussioni simili | ||||
| Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
| alimentatore insufficiente??? | molale81 | Batterie e Caricabatterie | 2 | 10 aprile 09 00:35 |