bobtech Postat Ianuarie 19, 2007 Partajează Postat Ianuarie 19, 2007 am urmatorul cod care ruleaza pe un PIC18F2320: LIST P=18F2320, R=HEX include "P18F2320.INC" CONFIG IESO=OFF, FSCM=OFF, OSC=HS CONFIG PWRT=ON, BOR=ON, BORV=45 CONFIG WDT=ON, WDTPS=128 CONFIG MCLRE=ON, PBAD=DIG, CCP2MX=C1 CONFIG DEBUG=OFF, LVP=OFF, STVR=ON CONFIG CP0=ON, CP1=ON, CP2=ON, CP3=ON CONFIG CPB=ON, CPD=OFF CONFIG WRT0=ON,WRT1=OFF, WRT2=OFF, WRT3=OFF CONFIG WRTC=OFF, WRTB=ON, WRTD=OFF CONFIG EBTR0=OFF, EBTR1=OFF, EBTR2=OFF, EBTR3=OFF CONFIG EBTRB=ON ORG 0 call IO_Init bsf WDTCON,SWDTEN ;enable WatchDog Timer clrwdt ;clear watchdog timer bsf PORTC,00 ;toggle pin bcf PORTC,00 bucla bra bucla END conform programului de mai sus, m-as astepta ca WDT sa genereze reset dupa 128*4ms=512ms, dar nu se genereaza WDT reset. aveti vreo idee ? e corect codul ? o fi pic-ul defect ? Link spre comentariu
Vizitator Mario_b Postat Ianuarie 20, 2007 Partajează Postat Ianuarie 20, 2007 Pai comanda clrwdt nu reseteaza WDT-ul? Link spre comentariu
vsurducan Postat Ianuarie 20, 2007 Partajează Postat Ianuarie 20, 2007 Nu sunt familiarizat cu PIC18F2320 si de aceea nu inteleg cum o sa va dati seama din acest program ca WDT-ul lucreaza sau nu atat timp cat nu se executa nimic in bucla. Dupa startarera WDT pulsul pe pinul C0 este atat de scurt ca nu se vede pe osciloscop, este greu de prins chiar pe unul cu memorie.Nu-mi dau seama daca ati configurat corect CONFIG_2H, se pare ca nu, pentru ca WDT trebuie sa fie disabled ca sa puteti controla din SWDTEN(DS35995 pagina239 si pagina246).cele bune si succes, Link spre comentariu
sofian Postat Ianuarie 20, 2007 Partajează Postat Ianuarie 20, 2007 merge perfect codul numai daca revine din call IO_Init, sau asta era un test ptr useri ? Link spre comentariu
vsurducan Postat Ianuarie 21, 2007 Partajează Postat Ianuarie 21, 2007 Depinde ce inseamna "perfect". Daca e un test de funtionare al WDT e cam departe de a fi perfect sau nu inteleg eu cum functioneaza instructiunea branch. Link spre comentariu
bobtech Postat Ianuarie 22, 2007 Autor Partajează Postat Ianuarie 22, 2007 @vsurducanam incercat sa simplific putin codul, ca sa fie mai usor de inteles. programul se termina cu o bucla infinita, in care WDT-ul ar trebui sa genereze reset. in programul cu care am testat de fapt, durata cat C0 ramane intr-o stare, e de cateva zeci de ms, si poate ar putea fi vazuta pe osciloscop.am setat si SWDTEN si WDT ca sa fiu sigur ca e setat, era suficient doar unul din cele 2. @sofiansa inteleg ca ai tesat codul de mai sus si pe C0 apare un impuls la fiecare 512ms ? Link spre comentariu
sofian Postat Ianuarie 22, 2007 Partajează Postat Ianuarie 22, 2007 sigur ca l-am testatimpulsul ala nu o sa il vezi pe osciloscop ptr ca dureaza 200nS la 20Mhzsau daca ai osciloscop cu memorie sau cu declansare externasau faci asa :movlw 0x01xorwf PORTC,f Link spre comentariu
Vizitator nea_Gogu_ingineru Postat Aprilie 8, 2007 Partajează Postat Aprilie 8, 2007 Mai trebuie sa scrii ceva la cod. Vezi in datasheet. Mai toate pic18-urile au wdt setabil. Va reamintesc ca resetul wdt e simulat de MPLAB. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum