Newsgroup: it.hobby.elettronica.digitale
Titolo: Help per semplicissimo programma 16f84 (PicBasic)

Salve amici, sto diventando un pò matto...ditemi dove sbaglio....
Quello che segue è un semplice programma che conta da 0 a 9999 e ne fà
l'output via seriale
'------------------------------------------------
Define osc 6
  include "modedefs.bas"
  page var word
start:
loop:
for page = 0 to 9999
serout portb.7,N2400,[#page,10,13]
next
goto loop
'------------------------------------------------
Io carico il suddetto programma su una GoldCard (vedi sul sito
http://www.minisdk.com/whatcard/index.htm
 le connessioni interne tra pic ram
e i pin della smartcard.
A questo punto stacco il programmatore di pic e monto lo smartmouse, lo
setto a 6mhz (ho provato anche a 3,...mhz ma non cambia nulla).
Imposto il terminale di windows con con 8bit,no parità,1 bit di stop, sulla
com appropriata.....inserisco la smartcard nello smartmouse....ma niente!
non ricevo nessun dato! :°((((((((((
Qualcuno può chiarirmi le idee? E' la prima volta che mi cimento nella
comunicazione tra pic e pc via seriale :(
Grazie infinite a chi mi aiuta!

Premettendo che non ho assolutamente capito in cosa consista la tua
applicazione provo a darti un paio di consigli. Non so se il problema sia
proprio questo ma mi saltano all'occhio quattro cose:
N2400 -- > Lo sai che la N vuol dire logica negata, cioe' simile all'EIA,
per applicazioni TTL in genere si usa T2400... se invece ti interfacci
direttamente alla RS232 di un PC allora è giusto N2400
For.. next --> in picbasic l'implementazione di questi cicli e' pessima,
spesso sbaglia senza motivo. Prova a mettere for page=0 to 9999 step 1 e
poi, questo invece e' una pratica corretta, metti "next page" non solo next,
rischi di confondere il compilatore
start: loop: --> a cosa servono due etichette vicine?
end --> manca l'istruzione end alla fine del programma. In picbasic in
teoria e' obbligatorio.
Sicuramente con questi accorgimenti e' piu' corretto, ma non so se nel tuo
caso specifico ti cambi la situazione.
Ciao
Lorenzo



Proverň oggi grazie!

Ciao,
uso PICBasic da poco, ma proverò ad esserti utile. Secondo me se non
ricevi nulla può essere un problema di impostazione dell'invio dei
dati alla seriale del pc oppure un errato collegamento dei cavetti dal
connettore del pc a quello sul circuito della breadboard. Io avevo
avuto problemi simile. Avevo collegato il Tx del pc al Tx "del pic"( o
meglio, al relativo pin del max232), stessa cosa per Rx. Incrociando
il tutto invece nessum problema(credo si tratti di null modem se non
erro... oppure di fortuna:-)...)
Per quello che riguarda l'implementazione dei cicli a me non ha mai
presentato errori, però se utilizzati senza malizia possono provocare
dei ritardi. Stessa cosa per alcune istruzioni.
Ad esempio a me è capitato che utilizzanod una serie di IF..THEN al
posto di una struttura CASE, l'algoritmo veniva eseguito meglio(le
condizioni erano poche, forse con molte scelte il CASE è d'obbligo).
Occorre avere malizia sopprattutto quando occorre sfruttare degli
interrupt: istruzioni semplici e concise, così come poi viene
consigliato dal manuale.
Non è poi malaccio picbasic, anche se l'asm è l'asm.
Per ciò che riguarda END alla fine, messo poche volte ma nessun
problema e nessun errore o warning in compilazione.
Spero con la mia poca esperienza di esserti stato utile e se ho
sbagliato che qualcuno mi corregga.
Ciao ciao
                Ste