Programmino facile facile

Nov 28, 2005 17 Replies

Ciao a tutti ho iniziato circa un mese fa a scuola a fare programmi in assembler per pic16f84. Devo fare un progamma che gestisce 8 led su portb tramite 3 interruttori su port a.



Con ra0=3D0 ra1=3D0 ra2=3D0 si accende led1 su rb0 Con ra0=3D1 ra1=3D0 ra2=3D0 si accende led1 su rb1 Con ra0=3D0 ra1=3D1 ra2=3D0 si accende led1 su rb2 Con ra0=3D1 ra1=3D1 ra2=3D0 si accende led1 su rb3 Con ra0=3D0 ra1=3D0 ra2=3D1 si accende led1 su rb4 Con ra0=3D1 ra1=3D0 ra2=3D1 si accende led1 su rb5 Con ra0=3D0 ra1=3D1 ra2=3D1 si accende led1 su rb6 Con ra0=3D1 ra1=3D1 ra2=3D1 si accende led1 su rb7



Ho provato a fare questo programma ma =E8 abbastanza lungo e la prof. ha detto che c'=E8 un modo per farlo in circa una decina di righe.



Se qualcuno riesce a farmelo avere lo ringrazio molto. Meglio se =E8 in formato testo



Ho visto un uomo che moriva per amore...ma ho anche sentito fassi87 @libero.it che diceva :

probabilmente è vero

e na fetta di culo tagliata vicino all'osso?

N1 in cerca di firma ICQ - 140416778

attento che te riga il 636

L.

%DCL-F-RUIDIOT?

in C è questo: output_B(input_A()&7);

in ASM qualcosa del genere (però ho usato 11 linee di codice)

MOVLW FF MOVWF 05 BCF 03.5 MOVF 05,W ANDLW 07 MOVWF 10 BSF 03.5 CLRF 06 BCF 03.5 MOVF 10,W MOVWF 06

ovviamente devi aver già impostato l'oscillatore e gli altri #fuses per le tue esigenze, in modo che il PIC possa funzionare tranquillamente

ciao!

ice ha scritto:

Ma ICProg programma anche con file C? Non ho ancora capito come si fa un file hex con un compilatore C (ho fatto solo exe e dll...)...

Bye,

snipped-for-privacy@libero.it ha scritto:

Beh, casomai ti aiutiamo a farlo e ti facciamo capire a che serve ogni riga... Credo sia inutile fornirti il listato bello e pronto. Lo dico per te eh ;)

Bye, Carmine.

sorgente --> compilatore --> ic-prog

è il compilatore che prende in input il sorgente e genera l'hex, che è uno standard... ic-prog legge l'hex e programma il pic tramite un programmatore hardware

ice ha scritto:

Come compilatore va bene Gcc?

Bye,

Carmine ( pikachu31NOSPAM@gmail.com (Togli la scritta NOSPAM) ) Webmaster di The Total Site (http://www.tekkentag.altervista.org/ ) Powered by SuSE Linux 9.3 Pro - Webmaster di sceptilepage www.sceptilepage.altervista.org Athlon X2 3800+@2500mhz, DDR500 1Gb GeIL One S 2.5-3-3-5 7800GTX, Aureon Universe 7.1, DFI nf4 UT Ultra-D

"Carmine" ha scritto nel messaggio news:dmfrga$ocd$ snipped-for-privacy@area.cu.mi.it...

Il compilatore deve essere in grado di generare codice per il micro specifico! Ogni core ha delle istruzioni specifiche che sono "numeri" esadecimali che possono anche essere di diversa lunghezza da micro a micro (ad esempio i PIC16 dovrebbero averle a 14 bit), anche l'assembler in realtà deve essere interpretato per essere "digerito" dal micro, anche se le mnemonic assembler equivalgono al linguaggio macchina, e di solito una riga assembler è una istruzione. Dico di solito perché ci sono mnemonic che integrano più istruzioni, ad esempio qualcosa del tipo "MOV R15+=2,..." (ho sparato a caso)potrebbe spostare un valore puntato da un registro da qualche altra parte ed incrementa il puntatore, queste istruzioni i micro tosti (più probabilmente i DSP) le svolgono in un colpo di clock solo...

Il GCC io l'ho trovato per un sacco di micro, ma in realtà sono tutti compilatori diversi!

J.

[...] PRIMO: posta in ASCII, sei inquotabile

secondo: l'applicazione che ti chiedono è banale...è semplicemente un decoder... _carica il PORTA _maschera per avere solo i 3 bit che ti servono _fai una look-up table con in entrata e 3bit e in uscita il byte della decodifica _spara il byte sul PORTB

Stima righe di codice (esclusi inizializzazioni): circa 15

prima ti mando in email le mie coordinate bancarie ;-)

"Carmine" ha scritto nel messaggio news:dmfnmd$id0$ snipped-for-privacy@area.cu.mi.it...

rotfl....

"PeSte" ha scritto nel messaggio news:rNTif.24540$ snipped-for-privacy@tornado.fastwebnet.it...

Sei andato a scuola da Carmine ultimamente??? :-)

J.

"Regae" ha scritto nel messaggio news:438c46ac$0$13266$ snipped-for-privacy@reader2.news.tin.it...

sarà il panino con la mortadella che ho di traverso, ma non l'ho capita...uh?

Regae ha scritto:

Ahhh capito ;)

Bye,

Carmine ( pikachu31NOSPAM@gmail.com (Togli la scritta NOSPAM) ) Webmaster di The Total Site (http://www.tekkentag.altervista.org/ ) Powered by SuSE Linux 9.3 Pro - Webmaster di sceptilepage www.sceptilepage.altervista.org Athlon X2 3800+@2500mhz, DDR500 1Gb GeIL One S 2.5-3-3-5 7800GTX, Aureon Universe 7.1, DFI nf4 UT Ultra-D

simone.bern ha scritto:

E vabbè di nuovo con le critiche... grazie eh...

Bye,

-- Carmine ( snipped-for-privacy@gmail.com (Togli la scritta NOSPAM) ) Webmaster di The Total Site

formatting link
) Powered by SuSE Linux 9.3 Pro - Webmaster di sceptilepage
formatting link
Athlon X2 3800+@2500mhz, DDR500 1Gb GeIL One S 2.5-3-3-5

7800GTX, Aureon Universe 7.1, DFI nf4 UT Ultra-D

"PeSte" ha scritto nel messaggio news:iLXif.25086$ snipped-for-privacy@tornado.fastwebnet.it...

Non era facile infatti! Di solito è lui che parla di compensi... :-)

J.

Sicuro ? Mi sembra il problema sia un'altro, anche se e' vero che chi ha chiesto aiuto IMHO non ha postato la domanda molto correttamente.

Io vedrei meglio in C : output_B(0x01

"Regae" ha scritto nel messaggio news:438cd6bf$0$16217$ snipped-for-privacy@reader3.news.tin.it...

;-)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required