Liviu M Postat Martie 18, 2011 Partajează Postat Martie 18, 2011 Daca m-am prins eu bine, pentru debug din mplab ai nevoie de niste fisiere speciale - .cof. Daca mikroC le genereaza sunt sanse sa mearga debugul din mplab cu codul din mikroC. Daca nu... incearca alt compiler. Cum m-am tot laudat cu diverse ocazii, eu folosesc cu succes picc integrat in mplab. Nu are la fel de multe functii deja scrise ca mikroC, da' mie mi s-a parut "mai ANSI" decat mikroC, asa ca daca stii deja C sunt sanse sa-ti placa mai mult picc. Link spre comentariu
ovy_pas Postat Aprilie 5, 2011 Autor Partajează Postat Aprilie 5, 2011 Am conectat pickit2 la calculator si mplab il recunoaste. Am realizat o aplicatie in hi-tech c compiler, build cu succes.Nu am reusit sa descarc aplicatia in pic si bineinteles nici sa fac debugg.Se poate face debugg in hi-tech c compiler? in documentatii am vazut cum se face debugg in asm dar nu am gasit debugg in C. Link spre comentariu
25L91N11 Postat Aprilie 5, 2011 Partajează Postat Aprilie 5, 2011 Salut,mikroC genereaza COFF files.Vezi in PDF-ul din attach ce trebuie sa faci.Succes Link spre comentariu
Eugen_B Postat Aprilie 6, 2011 Partajează Postat Aprilie 6, 2011 Se poate face debug si cu hi-tech ca si compilator, nu uita sa pui MCLREN (master clear enable) si DEBUGEN (debug enable) la config. Nu am reusit sa descarc aplicatia in pic si bineinteles nici sa fac debug.Pai ce eroare a dat? Ce zice in output? Link spre comentariu
ovy_pas Postat Aprilie 10, 2011 Autor Partajează Postat Aprilie 10, 2011 in output scrie asa:-La build :Build F:\Pro_MPLAB\Project01 for device 16F872 Using driver C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe Make: The target "F:\Pro_MPLAB\ParteaI.p1" is up to date. Loaded F:\Pro_MPLAB\Project01.cof. ********** Build successful! **********-la conectare :Initializing PICkit 2 version 0.0.3.63 Found PICkit 2 - Operating System Version 2.32.0 PICkit 2 Unit ID = ovy_pas Target power not detected - Powering from PICkit 2 ( 5.00V) PIC16F872 found (Rev 0x2) PICkit 2 Ready-la programare :Programming Target (09.04.2011 20:37:31) PIC16F872 found (Rev 0x2) Erasing Target Programming Program Memory (0x0 - 0x1) Programming Program Memory (0x7DB - 0x7FF) Verifying Program Memory (0x0 - 0x1) Verifying Program Memory (0x7DB - 0x7FF) Programming User ID Memory Verifying User ID Memory Programming Configuration Memory Verifying Configuration Memory PICkit 2 Ready -la debugg :Initializing PICkit 2 version 0.0.3.63 Found PICkit 2 - Operating System Version 2.32.0 PICkit 2 Unit ID = ovy_pas Target power not detected - Powering from PICkit 2 ( 5.00V) PIC16F872 found (Rev 0x2) PICkit 2 Ready PKWarn0006: The local copy of program memory has been changed since the last program operation. Should PICkit 2 program the target (fix) before proceeding? PKWarn0008: The target will be programmed with LVP enabled. PICkit 2 cannot debug the target in this state. Would you like to disable LVP? Programming Target (09.04.2011 20:40:30) PIC16F872 found (Rev 0x2) Erasing Target Programming User ID Memory Verifying User ID Memory Programming Debug Executive (0x-700 - 0x7FF) Verifying Debug Executive (0x700 - 0x7FF) Programming Debug Vector Verifying Debug Vector Programming Configuration Memory Verifying Configuration Memory PK2Error0028: Unable to enter debug mode PICkit 2 Ready PK2Error0024: PICkit 2 was unable to establish a valid Vdd on the target (Attempted 5.00V - Read 0.00V) La programare imi da senzatia ca s-ar incarca programul, se sterge vechiul program din pic si la urma ramane led-ul galben aprins si nu mai face nimic.Am reusit sa fac simulare debugg in MPLABSIM.Am versiunea MPLAB 8.63 si la configure nu am gasit MCLREN si DEBUGEN. Link spre comentariu
Eugen_B Postat Aprilie 11, 2011 Partajează Postat Aprilie 11, 2011 Posteaza un pic cum ai tu configul pus. Daca ai fi cautat pe net PK2Error0028 , in unul din rezultate fix despre debug on si mcrl enable se vorbeste.Ar trebui sa ai configul ceva de genul:__CONFIG(LVPDIS&DEBUGEN); plus ce mai ai tu nevoie pentru configurarea ceasului, etc.(vad ca 16f872 nu are bit pentru dezactivarea mclr).De low voltage se ocupa inainte de programare pt debug , dar ca sa nu te mai intrebe, poti sa-l dezactivezi. Link spre comentariu
ovy_pas Postat Aprilie 11, 2011 Autor Partajează Postat Aprilie 11, 2011 Acesta este codul C :#include __CONFIG(XT & WDTDIS & PWRTDIS & BORDIS & LVPEN & WRTEN &DEBUGEN & DUNPROT & UNPROTECT);void init(void){TRISB = 0b00000000;}void main(void){init();while (1){PORTB =0b00000011 ;_delay(10000);PORTB =0b00000000;_delay(10000);}} Link spre comentariu
Eugen_B Postat Aprilie 11, 2011 Partajează Postat Aprilie 11, 2011 O sa incerc cu un pic16f505 mai in colo, ca doar de asta am la incemana acum , dar stiu ca si eu am avut problema aia cu PK2Error0028 dar s-a rezolvat cu DEBUGEN si MCRLEN. Link spre comentariu
ovy_pas Postat Aprilie 11, 2011 Autor Partajează Postat Aprilie 11, 2011 Poate nu fac pasii care trebuie, sunt la inceput pe MPLAB si pt prima data fac debug, eu programez cu softul pickit2 v2.61 si functioneaza.Se poate programa si din MPLAB in Programmer > Program ? Sau la mine nu functioneaza corect programarea in MPLAB? Debugg se face dupa programare ?Am cablu USB intre PC si pickit2 de 3m si cablu intre pickit2 si montaj de 0.5 m, iar la pinii PGD si PGC am leduri cu rezistenta de 470 ohmi, ar mai putea fi si acestea una din cauze? Mentioneaz ca softul pickit2 v2.61 programeaza excelent.Montajul este alimentat independent, nu din pickit. Link spre comentariu
Eugen_B Postat Aprilie 11, 2011 Partajează Postat Aprilie 11, 2011 Din cate am mai citit, de obicei se face:Debugger->Select tool->pickit2Debugger->Clear Memory->AllDebugger->ProgramClear memory nu trebuie dat mereu, am vazut undeva ca zicea de asta cand da eroarea aia cu unable to enter debug.(si select tool doar la inceput)Cu pic16f505 nu pot sa fac debug , imi trebuie nu stiu ce adapter header pentru debug. Dar la 16f872 care se pare ca il folosesti tu nu vad sa zica nicaieri nimic, ar trebui sa mearga debug-ul direct.Apropo eu debug-ul nu l-am folosit, doar am dat o data de curiositate mai demult, pe un pic18. Link spre comentariu
sosoi Postat Aprilie 15, 2011 Partajează Postat Aprilie 15, 2011 Puteti sa-mi spuneti cate breakpoint se pot pune la PICKIT Debugger ? Link spre comentariu
ovy_pas Postat August 24, 2011 Autor Partajează Postat August 24, 2011 Am o intrerupere data de TMR0:void interrupt() { if (T0IF_bit) { cnt++; // increment counter T0IF_bit = 0; // clear TMR0IF TMR0 = 96; Daca introduc cod aici in intrerupere oare influienteaza durata cu care se incremeneaza contorul cnt? }} Link spre comentariu
Liviu M Postat August 24, 2011 Partajează Postat August 24, 2011 Cred ca depinde de cat timp ai intre 2 intreruperi. Tinand cont ca in rutina de servire a intreruperilor acestea sunt dezactivate, daca instructiunile din runtina dureaza prea mult, poti "rata" o intrerupere venita de la timer. Altfel, cred ca daca durata intructiunilor din rutina de intreruperi nu depaseste perioada timerului, cred ca nu "simti" instructiunile respective. Repet, cred. Link spre comentariu
francezu Postat August 25, 2011 Partajează Postat August 25, 2011 Liviu M are dreptate, durata de executie a rutinei de intrerupere trebuie sa fie mai mica decat perioada la care survin intreruperile. @ovy_pas seteaza compilatorul sa genereze fisiere .cof si apoi fa o simulare in Proteus. Ai posibilitatea sa rulezi codul pas-cu-pas/cu breakpoints, la nivel de cod sursa. Astfel poti sa vezi exact in cat timp se executa codul, perioada de overflow a timer-ului, etc. In orice caz, rutina de intrerupere trebuie sa contina doar strictul necesar, nu e bine sa o incarci prea mult, altfel poate sa afecteze codul din main(daca este dependent de timp). Link spre comentariu
Liviu M Postat August 25, 2011 Partajează Postat August 25, 2011 In orice caz, rutina de intrerupere trebuie sa contina doar strictul necesar, nu e bine sa o incarci prea mult, altfel poate sa afecteze codul din main(daca este dependent de timp).Bine punctat aici, mai ales daca ai si alte surse de intreruperi. Cum spuneam, la intrarea in rutina de tratare intreruperi, intreruperile sunt dezactivate. Asa ca daca stai prea mult in ea si mai ai si alte surse de intreruperi, ai sanse sa pierzi din ele. 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