[XPost] pic 12F629 aiuto

Salve, da qualche giorno sto sperimentando la programmazione di questo PIC. E' la prima volta che uso dei PIC e ancora cerco di fare esperienza.

Sto cercando di far funzionare questo programma:

________________________________________________________

;************************************************** ; Pic by example ; LED.ASM ; ; (c) 1999, Sergio Tanzilli ; ( snipped-for-privacy@picpoint.com) ;

formatting link
************************************************** ;PROCESSOR 12F674 ;RADIX DEC INCLUDE "p12f629.inc" ;ERRORLEVEL -302 ;Setup of PIC configuration flags ;XT oscillator ;Disable watch dog timer ;Enable power up timer ;Disable code protect ;__CONFIG 31E3H LED EQU 0 ORG 0CH Count RES 2 ;Reset Vector ;Start point at CPU reset ORG 00H bsf STATUS,RP0 movlw 000111110B movwf TRISIO bcf STATUS,RP0 bsf GPIO,LED MainLoop call Delay btfsc GPIO,LED goto SetToZero bsf GPIO,LED goto MainLoop SetToZero bcf GPIO,LED goto MainLoop ;Subroutines ;Software delay Delay clrf Count clrf Count+1 DelayLoop decfsz Count,1 goto DelayLoop decfsz Count+1,1 goto DelayLoop return END

____________________________________________________________

Ho cercato di riadattarlo dato che non era scritto per il pic che uso io. E provando ad assemblarlo con MPASM mi vengono restituiti i seguenti

3 warning: Message[302] C:\DOCUME~1\BENNNY\DESKTOP\TEMP\MPASM\SRC\LED.ASM 27 : Register in operand not in bank 0. Ensure that bank bits are correct. Warning[219] C:\DOCUME~1\BENNNY\DESKTOP\TEMP\MPASM\SRC\LED.ASM 43 : Invalid RAM location specified. Warning[219] C:\DOCUME~1\BENNNY\DESKTOP\TEMP\MPASM\SRC\LED.ASM 47 : Invalid RAM location specified.

Il primo anche se non ho capito perchè lo fa, l'ho risolto ponedo l'indirizzo di TRISIO a 05h invece che 85h, praticamente relativo al banco 1 nel quale vado a lavorare e non assoluto rispetto a tutta la memoria. Questo sarebbe già un bel dubbio che potreste chiarirmi.

Il secondo errore, ho cercato di aggirarlo incrementando Count e mettendolo in W e poi usando W per indirizzo e sembra funzionare.

Premesso quindi che sono riuscito a far compilare il codice senza segnalazioni (credete sia MPASM a non essere buono o è il programma che è errato?)...

Non riesco a vedere il lampeggio del led. Appena do alimentazione il led si accende ma non si spegne più. Secondo il codice quale dovrebbe essere la frequenza di lampeggio? Sto usando come oscillatore quello interno, lasciato di default a 4Mhz.

Grazie di ogni aiuto, se servono altri chiarimenti chiedete pure. Bennny

--
--------------------------------------------------------------
R: Perché va contro l'ordine con il quale la gente legge il testo
normalmente.
D: Perché il quoting fatto male è una cosa sbagliata?
R: Il quoting fatto male.
D: Qual è la cosa più fastidiosa su usenet e in e-mail?
Reply to
Bennny
Loading thread data ...

Bennny ha scritto: > Message[302] C:\DOCUME~1\BENNNY\DESKTOP\TEMP\MPASM\SRC\LED.ASM 27 : > Register in operand not in bank 0. Ensure that bank bits are correct.=

E' una vaccata microchip, ci sbattono contro tutti all'inizio. Il=20 programma funziona comunque perche' dell'indirizzo scritto vengono=20 comunque considerati solo i 7 bit meno significativi, l'ottavo viene=20 preso da RP0.

La RAM inizia a 20h, non 0Ch.

Circa 5Hz

ciao Claudio F

Reply to
Claudio F

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.