Fórum témák

» Több friss téma
Fórum » PIC programozása C nyelven, C-Compiler
Lapozás: OK   128 / 153
(#) brigit86 válasza benjami hozzászólására (») Jún 2, 2016 /
 
Nem, azért próbálgattam számokkal. Mindig ezeket a számokat teszi bele.
(#) killbill válasza brigit86 hozzászólására (») Jún 2, 2016 /
 
"%c", 65 -re mit ir ki?
(#) brigit86 válasza killbill hozzászólására (») Jún 2, 2016 /
 
egy r betűt.
(#) killbill válasza brigit86 hozzászólására (») Jún 2, 2016 /
 
Erre egy 'A' betut kellett volna kiirjon. Az 'r' ASCII kodja 114, amit %d eseten is kiirt. De, hogy miert ezt veszi fel az atadott ertek helyett, azt nem tudom. Nem tudsz disassembly listat nezni?
(#) brigit86 válasza killbill hozzászólására (») Jún 2, 2016 /
 
Azt sajnos nem tudom hogy kell az mplabx-ben. Hát szerintem ez egyértelmű, hogy nem az én hibám, szerintem a fordító lehet rossz, vagy tényleg nem tudom már mire gondoljak, több napja keservesen szenvedek vele.
(#) killbill válasza brigit86 hozzászólására (») Jún 2, 2016 /
 
Vagy a fordito vagy a sprintf, de az eleg valoszinu, hogy nem te hibazol. Hacsak nem valami memoria modell beallitas vagy egyeb agyafurt mikrocsip dolog van a hatterben.
(#) brigit86 válasza killbill hozzászólására (») Jún 2, 2016 /
 
A probléma csak az, hogy nekem szükségem van ehhez a projekthez a sprintf függvényre, és nincs sok kedvem a nyákot se újragyártani 16 bites pichez
(#) killbill válasza brigit86 hozzászólására (») Jún 2, 2016 /
 
Ebben az esetben kenytelen leszel jobban beleasni magad a dologba. Csak kellene az a disassembly lista. Vagy megirod a sprintf-et. A sprintf elvileg az vararg-on (stdarg.h) alapul, esetleg azzal lehet valami gaz. Nem tudom, hogy xc8-on van-e valami ezzel kapcsolatos beallitas.
(#) benjami válasza brigit86 hozzászólására (») Jún 2, 2016 /
 
Disassembly list: Windows / Debugging / Output / Disassembly Listing file
(#) killbill válasza brigit86 hozzászólására (») Jún 3, 2016 /
 
Még egy kerdes. Include-olod a szukseges header-t (stdio.h)?
(#) brigit86 válasza killbill hozzászólására (») Jún 3, 2016 /
 
Igen, persze, szerintem anélkül le sem fordulna.
(#) Wezuv válasza brigit86 hozzászólására (») Jún 3, 2016 /
 
Csak egy tipp. Próbáld beállítani a karakter kódolást a project beállításainál win 1250-re.
(#) benjami válasza brigit86 hozzászólására (») Jún 3, 2016 /
 
Kipróbáltam szimulátorban, nálam jól működik az alábbi program:
  1. #include <xc.h>
  2. #include <stdio.h>
  3. char buf[64];
  4. void main(void)
  5. {
  6.   sprintf(buf, "\r\nez a szam:%d, %d\r\n", 54, 33);
  7.   while(1)
  8.   {
  9.   }
  10. }

18f26k22, XC8 (Free mode) v1.10
Érdemes lenne átnézni a beállításokat.
(#) killbill válasza benjami hozzászólására (») Jún 3, 2016 /
 
Szimulatoron persze, hogy jol mukodik, hiszen a program hibatlan. Ezert tette fel a kerdest. Probald ki valos harware-en.
(#) benjami válasza killbill hozzászólására (») Jún 3, 2016 /
 
Nem nyilatkozott arról, hogy próbálta-e szimulátorban, és ott jó volt-e, pedig érdemes lenne ott kipróbálnia. Mivel az sprintf függvény semmilyen perifériát nem használ, nem tartom valószínűnek, hogy eltérjen a szimulátor eredménye.
(#) killbill válasza brigit86 hozzászólására (») Jún 3, 2016 /
 
Idézet:
„Igen, persze, szerintem anélkül le sem fordulna.”
Gondolod? A prototype hianya jo esetben egy Warning-ot jelent, nem tobbet. Mikrocsip kornyezetben a Warningot a legtobben el sem olvassak. Viszont a valtozo paramterszam miatt lehet, hogy maskepp adja at a parametereket, es ezert nem mukodik. Ezert kerdeztem csak az include-ot.
(#) killbill válasza benjami hozzászólására (») Jún 3, 2016 /
 
Ebben lehet némi igazság. Ez a szimulátor a lefordított kódot futtatja egy virtuális PIC-en?
(#) benjami válasza killbill hozzászólására (») Jún 3, 2016 /
 
Igen, ahogy mondod. A processzormaggal nem szokott gondja lenni a szimulátornak, még a timerek is nagyrészt jól működnek benne. A környezetet leszimulálni azt már viszont csak te tudod, a bonyolultabb perifériákat (USB, ethernet) meg nem is lehet normálisan leszimulálni.
(#) brigit86 válasza killbill hozzászólására (») Jún 4, 2016 /
 
Kipróbáltam, nem fordult le include nélkül. Amúgy korrekt programozók minden warningra is figyelnek, azok sem véletlenül vannak ott. Sok esetben olyan hibát jeleznek, amitől teljesen működésképtelen is lehet akár a program.
(#) brigit86 válasza benjami hozzászólására (») Jún 4, 2016 /
 
Nem próbáltam szimulátorban, megmondom őszintén, nem is tudom hogy kell. Ezer más helyen használtam már ezt a függvényt, és még mindig jó volt mindenhol. Igaz 8 bites mikrokotrolleren nem használtam, csak 16 bitesen. Valószínű a probléma megoldása ezirányban fog történni.
A hozzászólás módosítva: Jún 4, 2016
(#) Saggitarius válasza brigit86 hozzászólására (») Jún 4, 2016 /
 
Kuldtem egy PM-et. Viszont az lenne a kerdesem, honnan derul ki az, hogy Te melyik soros porton kuldod ezeket az adatokat? (ketto van a 18F26K22-ben)

sajat hibam, elneztem 2-esen kuldod.
A hozzászólás módosítva: Jún 4, 2016
(#) brigit86 válasza Saggitarius hozzászólására (») Jún 4, 2016 /
 
uart2_tx_str(buf); -- küldi ki, tehát a TX2-n megy ki. A soros portra írtam függvényeket. Az uart1_tx_str meg a TX1-en küld adatokat.
(#) Saggitarius válasza brigit86 hozzászólására (») Jún 4, 2016 /
 
Mindjart kuldok egy olyan verziot, ami nalam bevalt. Kivancsi lennek a velemenyedre.
A hozzászólás módosítva: Jún 4, 2016
(#) Saggitarius válasza brigit86 hozzászólására (») Jún 4, 2016 /
 
puts2USART(CrNl);
putrs2USART ("Ez a szam:");
puts2USART(buf); // nalam int>>str onverzioval, vagyis: puts1USART(itoa(count_str, count, 10));

ami lemaradt, es fontos:
unsigned char CrNl[] = "\r\n";
A hozzászólás módosítva: Jún 4, 2016
(#) Saggitarius válasza brigit86 hozzászólására (») Jún 4, 2016 /
 
Baud rate megfeleoen van beallitva?
(#) Saggitarius válasza brigit86 hozzászólására (») Jún 4, 2016 /
 
Tipp: 54+33=87 vs. buf size 64?
(#) cross51 válasza Saggitarius hozzászólására (») Jún 4, 2016 /
 
Itt mire gondolsz pontosan? A szöveget és a két számot az sprintf formázva kiírja a buf-ba és ha jól számolom az csak 20 byte (21 a \0-val) bőven elég neki a 64 byte.

Én sokkal inkább az XC-re gyanakszom nekem az 1.40 XC32-vel c++ nem ment se a cout se a printf ha float/double/long double akartam kiírni mindig csak inf-et dobott vissza, ki kell próbálni másik verziójú XC8-at.
(#) Saggitarius válasza cross51 hozzászólására (») Jún 4, 2016 /
 
Mivel nem vagyok profi C-ben, lehet rosszul ertelmezem? (sprintf fuggvenyt se igazan hasznaltam meg) A ket szam 54 es 33 nem a kiiratando meretet* jelenti?
* méret (a kiírás minimális szélessége):
(#) cross51 válasza Saggitarius hozzászólására (») Jún 4, 2016 / 1
 
Ha esetleg egyszer C és printf/sprintf használatra vennéd magad.
(#) Saggitarius válasza cross51 hozzászólására (») Jún 4, 2016 /
 
Koszi, ez eddig a legertelmesebb sprtintf fgv leiras.
Következő: »»   128 / 153
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem