[ pedja089 @ 23.05.2013. 08:36 ] @
Pozdrav,
Trebao bih da zamenim PL2303 sa PIC18F14K50. Inace ne radim u c-u, ali ovaj put sam se uhvatio sa njim u nadi da cu sebi olaksati posao, ali nikako...
Pokusavam da pokrenem ovaj primer od microchip-a za PIC18F14K50. Ali nikako mi ne polazi za rukom... Ni jednom do sad nisam uspeo sloziti fajllove da prodje kompajliranje, uvek fali neki fajl, uvek nesto pravi problem...
Kako god ja slozio fajlove, nece da prodje kompajliranje. Jednom sam uspeo naterati da prodje kompajliranje PIC18F4550, ali kada sam prebacio na drugi pic, opet problemi, i opet fali jedan od zilion include fajlova.

Pokusao sam provaliti deskriptor za ovaj primer, ne bi li ga prebacio u PicBasic, ali ni to nisam uspeo.
U PBP postoji odradjen CDC primer, koji radi, ali u tom primeru nemam podatak o brzini seriskog porta koja je izabrana na PC(Ovo mi treba da bi PIC znao koju brzinu da postavi na seriskom portu).

Ima li ko kakvo resenje, ili bar volje da mi poslozi MPLAB X projekat sa svim fajlovima?
Ja vise nemam ideja kuda bi. Sve sto je bilo na netu prekopao sam i probao, ali za ovaj pic nisam uspeo napraviti....
Hvala
[ mikikg @ 23.05.2013. 11:10 ] @
Pogledaj ovu skorasnju temu gde sam bas to pravio samo sa drugim PIC (jos grdjim za kompajliranje) a proradilo na kraju:
http://www.elitesecurity.org/t464644-0-Iskustva-sa-PICF

U pitanju je MplabX + XC8 kompajler (C/C++).

[Ovu poruku je menjao mikikg dana 23.05.2013. u 12:33 GMT+1]
[ pedja089 @ 23.05.2013. 11:27 ] @
Hvala.

Sad moram na fax, ali veceras kad dodjem detaljno cu da pregledam, pa javim rezultate.
[ goran_68 @ 23.05.2013. 11:42 ] @
Ako ne ide javi. Skupiću ja sve fajlove na jedno mesto i kompajlirati.
[ pedja089 @ 23.05.2013. 15:28 ] @
Evo me, malo sam skratio boravak na faxu pa seo da ovo isprobam.
Skinuo sam ovo
http://www.eevblog.com/forum/m...ic16f1455/msg184332/#msg184332
Dodao fajlove za koje se bunio kompajler, fusove samo makao, dok ne prodje kompajliranje, jos neke sitnice oko seriskog porta zakomentarisao jer se i oko toga bunio kompajler, i dobijem ovo
Code:

MPLINK 4.48, Linker
Device Database Version 1.13
Copyright (c) 1998-2011 Microchip Technology Inc.
make[2]: *** [dist/default/production/usbserial.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
Error - section '.udata_usb_function_cdc.o' can not fit the section. Section '.udata_usb_function_cdc.o' length=0x00000019
Errors    : 1


BUILD FAILED (exit value 2, total time: 320ms)

Sad nastavljam da cackam dalje. Ovo mi je prvi ozbiljniji susret sa ovim c-om, i nikako mi se ne svidja... Toliko fajlova, pa jos svi ti fajlovi vuku jos fajlova, prekomplikovano za moj ukus...
Gorane, ako ti nije velika muka da mi to odradis... Samo reci kako da ti se oduzim.
[ goran_68 @ 23.05.2013. 18:25 ] @
Evo fajlova. Ja sam koristio MPLAB IDE 8.91 i mplabc18 v3.42. Kompajliranje prolazi odmah. Ništa nije dirano. Moraš da pogledaš "Low Pin Count USB Development Kit User’s Guide" AN-41356B.pdf
[ goran_68 @ 23.05.2013. 18:53 ] @
Problem je sa XC8. U prilogu su ti fajlovi kompajlirani sa free XC8 v1.12. Moraš da proveriš da li radi jer ja nemam nikakve mogućnosti za to.
[ pedja089 @ 23.05.2013. 20:33 ] @
Hvala.
Prvi projekat prolazi kompajliranje bez ikakvih problema. Ovaj drugi nece.
Uglavnom danas sam cackao, i nisam uspeo ceo dan napraviti da radi...
Do cega je nemam pojma.
Evo dokle sam ja stigao
http://www1.datafilehost.com/d/c3a3a102
[ goran_68 @ 23.05.2013. 20:49 ] @
Koju grešku ti prijavljuje?
[ pedja089 @ 23.05.2013. 21:50 ] @
Code:
MPLAB C18 v3.46 (evaluation)
Copyright 2000-2011 Microchip Technology Inc.
Days remaining until evaluation becomes feature limited:  52

WARNING:  The procedural abstraction optimization will not be supported when the evaluation becomes feature limited.

C:\Users\Admin\Desktop\cdcse\main.c:353:Warning [2058] call of function without prototype
C:\Users\Admin\Desktop\cdcse\main.c:360:Warning [2058] call of function without prototype
C:\Users\Admin\Desktop\cdcse\main.c:366:Warning [2058] call of function without prototype
C:\Users\Admin\Desktop\cdcse\main.c:391:Warning [2058] call of function without prototype
C:\Users\Admin\Desktop\cdcse\main.c:397:Warning [2058] call of function without prototype
MPLAB C18 v3.46 (evaluation)
Copyright 2000-2011 Microchip Technology Inc.
Days remaining until evaluation becomes feature limited:  52

WARNING:  The procedural abstraction optimization will not be supported when the evaluation becomes feature limited.

MPLAB C18 v3.46 (evaluation)
Copyright 2000-2011 Microchip Technology Inc.
Days remaining until evaluation becomes feature limited:  52

WARNING:  The procedural abstraction optimization will not be supported when the evaluation becomes feature limited.

MPLAB C18 v3.46 (evaluation)
Copyright 2000-2011 Microchip Technology Inc.
Days remaining until evaluation becomes feature limited:  52

WARNING:  The procedural abstraction optimization will not be supported when the evaluation becomes feature limited.

MPLINK 4.48, Linker
Device Database Version 1.13
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - could not find definition of symbol 'asm' in file './build/default/production/_ext/1472/main.o'.
Errors    : 1

make[2]: *** [dist/default/production/cdcse.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 2s)

Izgleda da mi ne radi XC8, ne vidim ga u mplabx...
Uostalom nije ni bitno, prolazi ovo sa C18, ne bih te vise zamarao. Hvala ti puno.
Sad cekam plocice da stignu pa javim sta sam napravio... A dok plocice ne stignu, drljacu po c-u i fajlovima, malo da se upoznam, i priviknem na C...
Zadnji put sam pre par godina nesto sitno radio u njemu. I sad ovo...

[ goran_68 @ 23.05.2013. 22:14 ] @
Ti i ovaj zadnji primer prevodiš pomoću MPLB C18 a ne pomoću XC8. Negde u MPLABX treba da podesiš koji kompajler ćeš koristiti. Napisao sam ti gore da se oba ova primera prevode bez problema.
[ pedja089 @ 23.05.2013. 22:26 ] @
To sam i ja skontao kad sam pisao post.
MPLAB X mi uopste ne vidi XC8. Uostalom nije ni bitno, kompajliranje prolazi sa C18 bez ikakvih problema.

Koji je kompajler u pitanju nista mi ne znaci... Pretpostavljam da oba odradjuju posao...

Sad sam prosao ceo main.c, pohvatao sam dobar deo gde sta kako ide... Nadam se da nece biti problema.
I pobrisao sam sve iz main-a sto je vezano za ostale piceve, da me ne buni, a ionako to sad necu koristiti. Stvarno ti mnogo hvala, puno si mi ucinio.
[ bogdan.kecman @ 23.05.2013. 22:59 ] @
problem je sto je c18 "mrtav" tako da ako radis novi projekat bolje se odma presaltaj na xc8
[ pedja089 @ 23.05.2013. 23:20 ] @
Bas sam bacio oko na net da vidim koja je razlika.
Evo sad sam ga reinstalirao, i radi...

Kad kompajliram ovaj primer za XC8 dobijem ova upozorenja:
Code:
../main.c:289: warning: unknown pragma "udata"
../main.c:349: warning: unknown pragma "code"
../main.c:356: warning: unknown pragma "code"
../main.c:362: warning: unknown pragma "code"
../main.c:387: warning: unknown pragma "code"
../main.c:393: warning: unknown pragma "code"
../main.c:401: warning: unknown pragma "code"
../main.c:405: warning: unknown pragma "interrupt"
../main.c:417: warning: unknown pragma "interruptlow"
../main.c:467: warning: unknown pragma "code"
../usb_descriptors.c:162: warning: unknown pragma "romdata"
../usb_descriptors.c:302: warning: unknown pragma "code"
../usb_device.c:279: warning: unknown pragma "udata"
../usb_device.c:323: warning: unknown pragma "udata"
../usb_device.c:370: warning: unknown pragma "code"
../usb_function_cdc.c:117: warning: unknown pragma "udata"
../usb_function_cdc.c:201: warning: unknown pragma "udata"


Pregledacu zasto to generise.
EDIT:
Nasao sam resenje za to
http://www.microchip.com/forums/m716312-print.aspx
Jos samo plocica da stigne i to je to...
Jos jednom hvala svima na pomoci.

[Ovu poruku je menjao pedja089 dana 24.05.2013. u 00:44 GMT+1]
[ pedja089 @ 12.06.2013. 23:14 ] @
Nisam uspeo naterati da proradi. Probace kolega da odradi, pa ako mu ne bude islo, docicu ovde da kukam :D
PIC radi, ali kad ubodem na usb, uredjaj nije prepoznat
[ mikikg @ 13.06.2013. 14:08 ] @
Ako prolazi nekako kompajliranje a i dalje nece da radi onda je najcesce problem sa konfiguracijom oscilaora za CPU i USB. Proveri oko toga sta se desava. Npr pre nego sto udje u glavnu petlju da pokrene USB upali neki pin (LED) da vidis jel ti uopste proradi procesor.
[ pedja089 @ 23.06.2013. 01:33 ] @
Sredio sam da radi, problem je bio do nekih gluposti oko MPLAB X. Instalirao osmicu, podesio sve, i radi. Tj prepoznaje ga pc bez problema. Sacu se bacim na ostatak da vidim kako funkcionise.
Hvala svima na pomoci.
[ pedja089 @ 23.06.2013. 13:06 ] @
Probao sam jos par projekata iz microchip solution, i sve radi u mplab 8, u mplab x nisam uspeo naterati da radi.
[ bogdan.kecman @ 23.06.2013. 16:11 ] @
ako koristis stari mal ili neke druge stare bibiloteke to je sve za osmicu, za X ti trebaju nove verzije svega toga
[ pedja089 @ 23.06.2013. 19:41 ] @
Koristim verziju V2013-02-15, a MPLAB X 1.70....
MPLAB X koristim sa PBP, i zadovoljan sam kako radi... Pa sam se onda samo prebacio na C, ali nije to to. I onda sam uzeo instalirao 8.91 i sve besprekorno radi.
Sad se polako navikavam na C, ali ga i dalje ne volim :D A dok ga ne savladam proce vremena ohooo...
[ pedja089 @ 24.06.2013. 15:29 ] @
E opet sam zapeo...
Radi se o podesavanju parity(to mi je bitno), a i ostalih parametara...
U usb_config.h bilo je vec otkomentarisano defined(USB_CDC_SET_LINE_CODING_HANDLER)
U main-u
Code:
#if defined(USB_CDC_SET_LINE_CODING_HANDLER)
void mySetLineCodingHandler(void)
{
    //If the request is not in a valid range
    if(cdc_notice.GetLineCoding.dwDTERate.Val > 115200)
    {
    }
    else
    {
        //Update the baudrate info in the CDC driver
        CDCSetBaudRate(cdc_notice.GetLineCoding.dwDTERate.Val);

        //Update the baudrate of the UART
        #if defined(__18CXX) || defined(__XC8)
        {
            DWORD_VAL dwBaud;
            dwBaud.Val = (DWORD)(GetSystemClock()/4)/line_coding.dwDTERate.Val-1;
            SPBRG = dwBaud.v[0];
            SPBRGH = dwBaud.v[1];
        }    
         
        #endif
    }
}
#endif

Dodao sam ovo
Code:
      CDCSetCharacterFormat(cdc_notice.GetLineCoding.bCharFormat);
        CDCSetParity(cdc_notice.GetLineCoding.bParityType);
       CDCSetDataSize(cdc_notice.GetLineCoding.bDataBits); 

ispod
Code:
CDCSetBaudRate(cdc_notice.GetLineCoding.dwDTERate.Val);

Kompajliranje prolazi.
Koliko sam pohvatao to sluzi samo da pokupim podatke sa PC-a. Sad bi trebalo prema tim podatcima podesiti port.
I tu sam zapeo jer nigde ne mogu naci kako dalje. Da li se parity mora "rucno" racunati pa stavljati u 9.bit ili vec postoji funkcija u c-u?
I neki primer za to. Pregledao sam njihov forum i par an, nisam nasao. Pa reko da napisem ovde mozda neko vidi pre nego sto iskopam.
EDIT:
Primetio sam jos nesto sto mi je cudno
Code:
void putcUSART(char c)  
{
    #if defined(__18CXX) || defined(__XC8)
        TXREG = c;
    #else
        UART2PutChar(c);
    #endif
}

Zar pre TXREG = c ili mozda posle, ne bi trebalo da stoji nesto ovako while(!TXSTAbits.TRMT)?


[Ovu poruku je menjao pedja089 dana 24.06.2013. u 17:11 GMT+1]

[Ovu poruku je menjao pedja089 dana 24.06.2013. u 17:23 GMT+1]
[ goran_68 @ 24.06.2013. 18:43 ] @
Ovo sa USART treba ovako:

Code:

void putcUSART(char c)  
{
      while(!TRMT ){};
      while(!TXIF){};
      TXREG = c;  

}




[Ovu poruku je menjao goran_68 dana 24.06.2013. u 19:55 GMT+1]

[Ovu poruku je menjao goran_68 dana 24.06.2013. u 19:56 GMT+1]
[ pedja089 @ 24.06.2013. 22:39 ] @
Koji je razlog za while(!TXIF){};?
EDIT:
Nadjoh u datasheetu diagram.
Mada, ovi microchipovi primeri mi se i ne svidjaju bas. Cini mi se da je to sklepano samo da radi, nekako.
Znao mi se pojaviti neki necefinisani bajt na izlazu, zato sam pogledao sta se desava sa slanjem i nikako mi nije bilo jasno da guraju jedan za drugim bajtove bez provere da li je prethodni poslan...
Sad sam sklonio sa stola dok ne resim pariti.
Cini mi se da sam negde na netu naleteo na primer, ali ga sad nemogu iskopati.
[ goran_68 @ 24.06.2013. 22:56 ] @
Postavljen TXIF pokazuje da je TXREG prazan a bit TRMT da je TSR prazan.
[ pedja089 @ 28.06.2013. 08:31 ] @
Hvala naodgovoru.
Evo do sad nisam uspeo neci primer seriski komunikacije gde se moze podesiti parity bit. Da li neko ima primer ili da se bacim na pisanje koda.
Koliko sam vremena potrosio na trazenje i kopanje mogao sam do sad 3 puta sve to napisati.
[ pedja089 @ 29.06.2013. 17:55 ] @
Sve resno... Na kraju seo i napisao parity rutine.
Zahvaljujem svima na pomoci.