M.Adrian Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 (editat) Salut, am incercat recent sa programez un microcontroller pic16f1937, folosesc un pickit3 si ultima versiune de mplab. Am incarcat un program, a functionat, dupa care am modificat cateva randuri in cod iar apoi primeam o eroare care imi spunea sa alimentez uc extern, nu de la pickit3, am facut asta si primesc aceeasi eroare. Mai nou am incercat alt program si primesc eroarea asta la incarcare make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf make[1]: Entering directory 'F:/CONCURS' make -f nbproject/Makefile-default.mk dist/default/production/CONCURS.production.hex make[2]: Entering directory 'F:/CONCURS' "C:\Program Files\Microchip\xc8\v2.05\bin\xc8-cc.exe" -mcpu=16F1937 -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o build/default/production/newfile.p1 newfile.c newfile.c:8:6: error: variable has incomplete type 'void' void interrupt etti(void); // functie de intreruperi globala ptr. TOATE intreruperile de pe un ^ newfile.c:8:15: error: expected ';' after top level declarator void interrupt etti(void); // functie de intreruperi globala ptr. TOATE intreruperile de pe un ^ ; newfile.c:32:6: error: variable has incomplete type 'void' void interrupt etti(void) // ajung aici la fiecare 250*4us=1ms ^ newfile.c:32:15: error: expected ';' after top level declarator void interrupt etti(void) // ajung aici la fiecare 250*4us=1ms ^ ; 4 errors generated. (908) exit status = 1 nbproject/Makefile-default.mk:106: recipe for target 'build/default/production/newfile.p1' failed make[2]: Leaving directory 'F:/CONCURS' nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed make[1]: Leaving directory 'F:/CONCURS' make[2]: *** [build/default/production/newfile.p1] Error 1 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2 nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed BUILD FAILED (exit value 2, total time: 5s) Stiti cumva care ar putea fi problema? Editat Mai 14, 2019 de M.Adrian Link spre comentariu
Mircea Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 Folosesti MPLAB IPE pentru programare? Link spre comentariu
M.Adrian Postat Mai 14, 2019 Autor Partajează Postat Mai 14, 2019 Nu, mplab ide. Link spre comentariu
informer Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 (editat) ... retractez... m-am uitat putin la mplab ... eventual posteaza codu` ala din juru` rutinei de intrerupere... Editat Mai 14, 2019 de informer Link spre comentariu
Mircea Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 Mplab IDE e vechi. Instaleaza Mplab X IDE si vine si cu IPE. Merge foarte fiabil cu PICKIT3, cel putin cu ala original. Link spre comentariu
M.Adrian Postat Mai 14, 2019 Autor Partajează Postat Mai 14, 2019 Folosesc Mplab X ide v5.15 Link spre comentariu
M.Adrian Postat Mai 14, 2019 Autor Partajează Postat Mai 14, 2019 (editat) Revin cu detalii, pentru compilerul xc8 functia de intrerupere trebuie scrisa altfel. Am rezolvat erorile la program, dar inca am aceasta eroare: The target circuit may require more power than the debug tool can provide. An external power supply might be necessary. Connection Failed. Am incercat si cu alimentare externa si tot asa este. Editat Mai 14, 2019 de M.Adrian Link spre comentariu
mars01 Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 (editat) Daca aplici alimentare externa trebuie sa setezi in MplabX IPE sa foloseasca alimentarea externa. In meniul Advanced. Daca folosesti MplabX IDE, cauta setarea in proprietatile proiectului, sectiunea PicKit3. LE: si pt altii care patesc ceva similar in ceea ce priveste eroarea din primul post, in XC8 functia de intrerupere se declara: void __interrupt(high_priority) ISR_name(void) { // code } (sau low_priority, dupa caz). Editat Mai 14, 2019 de mars01 Link spre comentariu
M.Adrian Postat Mai 14, 2019 Autor Partajează Postat Mai 14, 2019 Am bifat dar tot la fel. Link spre comentariu
mars01 Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 De fapt trebuie sa debifezi pt a folosi alimentarea externa. Cam asa: Link spre comentariu
M.Adrian Postat Mai 14, 2019 Autor Partajează Postat Mai 14, 2019 Ma scuzati, m-am exprimat prost, am debifat pentru alimentarea externa, acelasi rezultat. Link spre comentariu
mars01 Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 Atunci cand se foloseste alimentare externa si PICKit3 este setat corespunzator, acea eroare mentionata numai are cum sa apara. Prin urmare, programatorul nu a fost setat desi setarea este efectuata in soft-ul de control. Poti incerca sa fortezi programarea unui alt controller ca sa se incarce firmware-ul corespunzator in PICKit si apoi sa revii la uC_ul initial, reprogramand astfel PICKit-ul. Daca nu te descurci in IDE incearca sa folosesti IPE. Eu nu am avut nici-un esec folosind acest software. Asigura-te ca ai conexiunile facute corect pe placa de test. Link spre comentariu
Mircea Postat Mai 14, 2019 Partajează Postat Mai 14, 2019 Exact, un update de FW ar fi bun si el, caci uneori ADC-ul intern detecteaza o tensiune USB mai mica decat e in realitate. Insa, se poate ca si portul USB sa dea o tensiune mai mica iar PICKIT3 o vede ca un consum extern. Poate schimbati portul USB doar de dragul testului. Link spre comentariu
Bandi Szasz Postat Mai 15, 2019 Partajează Postat Mai 15, 2019 La Voltage Level pune 4.6 - 4.7V, am avut probleme similare cu seria PIC16F18326. Dupa ce am setat 4.7V a luat-o fara probleme. Link spre comentariu
M.Adrian Postat Mai 15, 2019 Autor Partajează Postat Mai 15, 2019 (editat) Am incercat si cu Mplab x ipe si primesc eroarea asa: Connecting to MPLAB PICkit 3... Currently loaded firmware on PICkit 3 Firmware Suite Version.....01.55.01 Firmware type..............Enhanced Midrange MPLAB X has detected that the device’s low voltage configuration bit is set to OFF but the tool is set to low voltage programming and cannot program the device. To correct this: 1. Change the tool’s programming option to use High Voltage programming. 2. Change the device’s configuration bit to use low voltage (LVP=ON). Program the device using high voltage to reprogram the device’s configuration bit. 3. Change the tool’s programming option back to Low Voltage programming for subsequent programming of the device. Macar acum am mai multe detalii, dar situatia inca ma depaseste. Acesta este programul pe care incerc sa il incarc acum #include <xc.h> #define _XTAL_FREQ 16000000; __PROG_CONFIG(1,0x3FE4); __PROG_CONFIG(2,0x1EFF); int a=100; unsigned long y=0; void init (void); void main(void) { init(); while (1) { if(RA0==1) { a=a+4; if(a==1000) a=100; for(y=0;y<2000;y++); } TMR0IF=0; RB4=1; TMR0=255-(a/4); while(!TMR0IF); TMR0IF=0; RB4=0; TMR0=255-((1000-a)/4); while(!TMR0IF); } } void init (void) { OSCCON=0x7B; TRISB = 0x00; ANSELB=0x00; PORTB = 0x00; RB4=0; TRISA=0x01; ANSELA=0x00; PORTA=0x00; OPTION_REG = 0b00000011; } Editat Mai 15, 2019 de M.Adrian 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