Somma aritmetica in BASCOM-AVR

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Somma aritmetica in BASCOM-AVR

Postby anoir2 » 31 Mar 2013, 16:06

Code: Select all
Ledx Alias Pind.0
Ldx Alias Pind.1
Lcx Alias Pind.2
Lsx Alias Pind.3
Lesx Alias Pind.4

dim linea as byte

linea = (lesx*1) + (lsx*2) + (lcx*4) + (ldx*8) + (ledx*16)


mi restuisce un errore nell'assegnazione dell'espressione alla variabile linea... Togliendo le parentesi, pensando che facesse confusione con gli array, mi da questo errore:

Error : 35 3 paramaters expected

Si aspetta 3 parametri ma non capisco cosa voglia realmente...
anoir2
 
Posts: 7
Joined: 31 Mar 2013, 15:42

Re: Somma aritmetica in BASIC

Postby deluca » 31 Mar 2013, 18:41

Salve anoir2, benvenuto al forum e buona Pasqua anche a te.

ho capito a cosa ti riferisci, si tratta di un line-sensor per robot.... giusto?
Il tuo intento è di ottenere un valore discreto relativo ai led attivati durante il movimento mentre il robot segue la classica linea nera.
Se leggi direttamente la porta D hai già il valore, non è necessario che esegui una somma logico-binaria.

Quindi avresti:
linea=pind, oppure se lavori in logica negata(led attivi bassi) avresti: linea=Not Pind

se gli altri bit della porta (pind 5,6,7 sono connessi ad altre periferiche potresti adottare la tecnica AND_bit e fare cosi:

linea=Pind And &B_0001_1111 , dove gli 1 rappresentano i bit leds.

a questo punto hai il valore LINEA e tramite un SELECT CASE puoi enumerare i casi comportamentali del tuo robot tenendo conto del valore LINEA precedentemente ottenuto.

Ok?
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Somma aritmetica in BASIC

Postby anoir2 » 31 Mar 2013, 19:13

La ringrazio per l'utilissimo suggerimento! :D Un altra domanda... Comunque in BASCOM non è possibile fare un espressione come quella che ho scritto, vero?
anoir2
 
Posts: 7
Joined: 31 Mar 2013, 15:42

Re: Somma aritmetica in BASIC

Postby deluca » 31 Mar 2013, 19:19

yes, non è possibile poichè il compilatore Bascom è super-compatto ed in grado di ottimizzare i calcoli generando 1/3 del codice BIN scritto in "C" ardu.
Scrivi qualche linea in più, ma in compenso ottieni un codice molto compatto e deterministico.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 8 guests