grazie a tutti ...grazie a jijuja..
ho appena letto.. purtroppo in modo superficiale.. ..aimè per mancanza di tempo ...in questi ultimi due giorni ho avuto molto da fare e non ho potuto leggere le vostre risposte, molto precise e chiare..
..non appena finirò di leggere le risposte con calma mi rimetterò a leggere il manuale di assembler. ...però da quello che ho appreso è che non avevo contemplato l'idea di eseguire la divisione in binario..
Il discorso della divisione era un pretesto per fare un esercizio.. per
non avevo contemplato l'idea di lavorare direttamente in binario.. ..comunque lo affronterò, appena ne avrò il tempo, e poi voglio provare con numeri a 16 bit.. in modo che maturo anche questa esperienza.. come per esempio sono curioso di implementare gli array..
.....la finalità però deve essere riuscire a leggere i segnali che vanno ai servi ed eventualmente pilotare i servi....
ho già letto qualcosa ho trovato delle istruzioni strane!! tipo
GOTO $+1 .....però devo ammettere che non ho letto con attenzione e non ho fatto nessuna prova.. ..per cui meglio riprendere il discorso dopo aver fatto una lettura più consona.. ..
grazie ancora e a dopo
fausto
Citazione:
|
Originalmente inviato da jijuja L'istruzione BTFSC PORTA,0 ha questo significato:
testa il bit del registro "f" cioè PORTA e salta la prossima
istruzione se questo bit vale 0.
Fino a quì sembra chiaro,lo "0" che segue la virgola stà ad indicare
il primo bit (meno significativo) quindi,essendo la PORTA una delle due porte
"esterne" (cioè per precisione il registro PORTA prende il valore
della porta A se questa è configurata come ingresso)
del 16F84 e se guardi sulla descrizione dei "piedini" equivale a RA0.
riassumendo se su questo piedino si presenta un valore 0V
viene ignorata l'istruzione successiva.
Il tuo discorso sui Flag sarebbe corretto se al posto di prendere PORTA
come parametro "f" fosse stato preso STATUS che è il registro che contiene
i flag z,c ecc...
Nota che le istruzioni di salto usano 2 cicli per essere eseguite,
per l'architettura del Pic queste istruzioni,non sapendo quale è l'indirizzo della seguente fino a che non viene svolta praticamente usa 2uS
a 4 Mhz per essere eseguita. (curiosità che mi sembra il sito di tanzilli non
prenda in considerazione (ho detto mi sembra))
In risposta a ElNonino :
Certamente hai ragione e sai quello che dici,
io personalmente non uso numeri a virgola mobile
ne con segno in assembler
(se non convertendogli in numero intero)
comunque quello che dici è perchè conosci anche l'assembler.
Il giorno d'oggi tutti vengono indirizzati verso linguaggi ad alto livello
senza farsi le ossa con l'asm e questo lo trovo sbagliato perchè,
ad alto livello si tende a trascurare l'architettura delle macchine che si usano.
Sicuramente a livello didattico è importante capire tali micro e poi
si possono sfruttare meglio conoscendo l'architettura.
Potrei dirti che anche i programmatori ad alto livello
in gamba sanno usare l'asm perchè per risolvere alcuni problemi
in real time non c'è altra soluzione.
Se tutto quello che si vuole è il risultato senza approfondire
sarebbe convegnente usare esempio un 16F870 a 20 Mhz
in Basic strutturato tipo Microbasic e nonostante la non ottimizzazione
del codice si raggiungerebbero risultati in poco tempo
poi vista la maggior memoria e velocità...
non sò se mi spiego...
Certamente il C è più vicino all'assembler del Basic
e specialmente se usato senza comandi speciali cioè solo Ansi C...
Penso anche io sia la migliore soluzione ma sul 16F84
trovo l'asm con il quale 1000 istruzioni di capacità permettono di arrivare
molto lontano,esempio il Basic consente di andare ben poco lontano.
Concordi? |