![]() |
Anzi, meglio ancora e più efficiente: Codice: // MAXPAGLIONI e' il numero massimo di paglioni |
Citazione:
|
Citazione:
i < MAXPAGLIONI+1; è inefficiente. Fai una somma ad ogni ciclo. piuttosto: i <= MAXPAGLIONI; |
Citazione:
Per le eccezioni, come scrivevo non ho capito se è ammessa la possibilità di più bit accesi oppure no. |
Citazione:
Alla fine un case non è così inefficiente come potrebbe sembrare. Purché venga scritto UNA volta e non 4 come ho visto :fiu: |
alura... nelle gare di tiro con l'arco funziona così: si hanno x paglioni. su ogni paglione ci sono 4 arcieri con un bersaglio l'uno. ogni paglione è contrassegnato da un numero che visti dalla linea di tiro va aumentando da sinistra a destra. ogni bersaglio è contrassegnato dalla lettera A o B o C o D. a ogni arciere viene dato un cartellino da attaccare alla faretra con scritto il numero del paglione seguito dalla lettera del bersaglio dove tira ogni gara noi diamo degli score che sono dei fogli tabella doppia entrata dove vengono segnate le 3 freccie tirate ad ogni volee. per comodità nelle classifiche viene usato un web-based sistem chiamato ianseo (scaricabile gratuitamente) che propone le classifiche da proiettare. ora il problema: ogni 10 volee vi è una pausa, in questa pausa gli addetti alla gara (noi) prendiamo tutti gli score e li scriviamo manualmente nel programma. ora la possibile soluzione: dei terminali (uno per paglione) che abbiano pochi tasti: 1-2-3-4-5-6-7-8-9-10-M(0)-A-B-C-D-canc quando accendiamo i palmari con dentro il pic, noi addetti ai lavori scegliamo il paglione a cui viene associato il palmare (da quì il primo switch) e clicchiamo A per confermare (uscire dal primo ciclo while PORTA != 17) poi inizia la gara, a ogni volee arrivano gli arcieri e uno incaricato scrive in questo modo: clicca A e gli viene proposto sull'LCD: "Bersaglio: "n° paglione seguito da A e sotto inserisce il valore delle freccie, sbaglia a inserire il valore, schiaccia il pulsante canc (6) e reinserisce il valore poi preme B e fa le stesse cose, poi C e poi D quando tornano a tirare laddetto alla console schiaccia un pulsante sull'interfaccia in visual basic che invia il segnale 1 e legge i dati sul paglione 1, poi invia 2 e riceve i dati del paglione 2, ecc.. (while Soft_UART_Read(&error) != paglione) detto così è complicato, ma non credo che a livelli di programmazione con librerie già messe a disposizione del programma non ci fossero molti intoppi comunque grazie fin'ora ciao lol21 |
Citazione:
|
si, sono tutti collegati a una porta a del pic, i pin però non sono sufficienti e siccome devo utilizzare le porte b per l'LCD e le USART allora ho deciso che alcuni pulsanti sono collegati a 2 pin, in questo modo quando il bottone viene premuto il pic riceve 2 bit della porta a accesa e a seconda di quali bit sono accesi sceglie il valore |
Citazione:
|
alla fine ho risolto con l'array. mi consolo sul fatto che avevo ragione: le variabili le registra sulla RAM :D tanto che se gli dicevo Codice: int val[128]; Codice: int *val; ho finito il codice e sono rimasto in 2024 kb :D ora sono felice ma il lavoro non è finito, mi manca l'interfaccia in VB che invia i dati a PHP. e poi devo finire la scheda, spero tutto vada bene. Grazie a tutti dell'aiuto, mi avete aperto nuovi orizzonti :) ciao lol21 |
Tutti gli orari sono GMT +2. Adesso sono le 07:54. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002