Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
zahei

icprog si oscilatorul intern de 16F628A

Recommended Posts

sunt incepator si m-am poticnit deja la primul meu exemplu de programare. ledul ala nenorocit ar trebui sa clipeasca, dar ori n-o face deloc, ori o face sporadic si total neregulat, in functie de tipul de oscilator pe care il selectez din meniu la scriere. ce oscilator ar trebui sa aleg din meniu ca sa folosesc oscilatorul intern al microcontrolerului 16F628A? optiunile sunt: LP, XT, XS, ExtClk, IntRC I/O, IntRC CLKOUT, RC I/O, RC CLKOUT.

Share this post


Link to post
Share on other sites

Salut!In mod normal, tipul de oscilator este recunoscut de Ic-Prog asa cum l-ai scris(definit) in program. Esti sigur ca sursa (.asm) cuprinde si definirea oscilatorului? Poti verifica?Daca e un .hex sau .bin de pe net, ar trebui sa contina si definirea la osc, CodeProtect, WatchDog, MCLR, etc.Cu stima,Costel

Share this post


Link to post
Share on other sites

eu folosesc intrc i/o, adica osc intern iar cei 2 pini pot fi folositi ca I/O de uz general; chiar daca in asm (respectiv hex) este deja configurat tipul de oscilator, il poti schimba din setarile din icprog.

Share this post


Link to post
Share on other sites

sunt incepator si m-am poticnit deja la primul meu exemplu de programare. ledul ala nenorocit ar trebui sa clipeasca, dar ori n-o face deloc, ori o face sporadic si total neregulat, in functie de tipul de oscilator pe care il selectez din meniu la scriere. ce oscilator ar trebui sa aleg din meniu ca sa folosesc oscilatorul intern al microcontrolerului 16F628A? optiunile sunt: LP, XT, XS, ExtClk, IntRC I/O, IntRC CLKOUT, RC I/O, RC CLKOUT.

Vine iarna si ne lasam de motoare, nu ? :supz: Cel mai probabil ar trebui sa mearga cu IntRC. Atentie insa, problema poate fi in cu totul alta parte. Daca ai putea posta codul ar fi mult mai usor.

Share this post


Link to post
Share on other sites

codul e banal, in proton basic:

 

Symbol RB3 = PORTB.3     ' Bi-directional I/O portDelayMS 500                     ' Wait for PICmicro to stabiliseTRISB = %00000000          ' Set PORTD to all outputLoop:   High RB3                ' LED on        Delayms 500             ' Delay for .5 seconds        Low RB3                   ' LED on        DelayMS 500             ' Delay for .5 seconds        Goto Loop       	        ' Go back to loop and blink LED forever        End

codul asm generat este cam asta:

 

	#Define RB3 PORTB,3F1_SOF equ $ ; BLINK2.BASF1_000002 equ $ ; in [BLINK2.BAS] Delayms 500    ' Wait for PICmicro to stabilise	Movlw 1	Movwf PP1H	Movlw 244	Call [email protected]_000003 equ $ ; in [BLINK2.BAS] TRISB = %00000000       ' Set PORTD to all output	Bsf STATUS,5ram_bank = 1	Clrf TRISBLOOP	Bcf STATUS,5ram_bank = 0F1_000004 equ $ ; in [BLINK2.BAS] Loop:   High RB3           ' First LED on	Bsf PORTB,3	Bsf STATUS,5ram_bank = 1	Bcf TRISB,3F1_000005 equ $ ; in [BLINK2.BAS] Delayms 500         ' Delay for .5 seconds	Movlw 1	Bcf STATUS,5ram_bank = 0	Movwf PP1H	Movlw 244	Call [email protected]_000006 equ $ ; in [BLINK2.BAS] Low RB3	Bcf PORTB,3	Bsf STATUS,5ram_bank = 1	Bcf TRISB,3F1_000007 equ $ ; in [BLINK2.BAS] Delayms 500        ' Delay for .5 seconds	Movlw 1	Bcf STATUS,5ram_bank = 0	Movwf PP1H	Movlw 244	Call [email protected]_000008 equ $ ; in [BLINK2.BAS] Goto Loop         ' Go back to loop and blink LED forever	Goto LOOPF1_000009 equ $ ; in [BLINK2.BAS] [email protected]	Sleep	Goto [email protected]	END

@bogdanm: cel putin microcontrollerele nu sunt periculoase pentru sanatate.. daca nu fac parte dintr-un modul de aprindere de la motocicleta :)

Share this post


Link to post
Share on other sites

Aoleu !! Daca vrei sa-l pui pe aprindere, trebuie sa bagam PIC-uri serios in tine :snakeman:Asta am gasit in datasheet:

FOSC2:FOSC0: Oscillator Selection bits111 = RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN110 = RC oscillator: I/O function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN101 = INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN100 = INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN011 = EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN010 = HS oscillator: High speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN001 = XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN000 = LP oscillator: Low power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN

Mi se pare ca optiunea corecta este 100 in cazul tau (sau 101, nu ar trebui sa afecteze codul). Daca il pui asa si nu merge ... e ciudat. Cateva idei:- ai conectat pinul de RESET cum trebuie ? :)- i-ai 'spus' compilatorului de BASIC ce frecventa are clock-ul ? Trebuie sa aiba o optiune undeva. Daca nu stie, functia Delayms nu prea are cum sa mearga.- cum alimentezi hardughia?- ai dat un verify in ICProg la absolut tot ? (adica cod + fuses).

Share this post


Link to post
Share on other sites

- i-ai 'spus' compilatorului de BASIC ce frecventa are clock-ul ? Trebuie sa aiba o optiune undeva. Daca nu stie, functia Delayms nu prea are cum sa mearga.

ha! de aici tre sa fie buba. in mod sigur tre sa includ un .inc ceva cu caracteristicile cip-ului. diseara incerc din nou. in rest am verificat tot prin icprog si intr-adevar scrie in cip ce vreau eu sa scrie.

Share this post


Link to post
Share on other sites

device 16f628axtal=4 config INTRC_OSC_NOCLKOUT, etc. ; restul le gasesti in fisierul P16F628A.lpb din directorul /INC ...asa fac eu in ProtonPlus...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.