Fórum témák
» Több friss téma |
Szia! 1000 Köszönet!
A hozzászólás módosítva: Nov 30, 2013
Sziasztok!
Napok óta küzdök, és nem tudok rájönni hogy fordító hiba, vagy én vagyok tudatlan.
Számomra megfoghatatlan módon csak az alsó két byte-ot adj avissza a függvény, azaz 0x5678 a visszatérési érték. A compiler C30 3.31. Minden megoldás érdekel A hozzászólás módosítva: Dec 8, 2013
Temészetesen az is DWORD, csak már nem tudtam módosítani mikor észrevettem hogy kimaradt
dw = 0x12345678L; vagy dw = 0x12345678UL; nem segít a dolgon?
Úgy tűnik nem, de nem is lenne megoldás, mivel egy SNTP időt olvas be változóba. A 0x12345678 már csak kínomban született agymenés hogy megkeressem hol romlik el a dolog.
A függvényen belül kiíratva még jó, ha a függvénynek adok egy DWORD* -t és abba is beírom az értéket az is jó lesz. Valahol a stack-ben veszik el a felső két byte, csak nem tudom hogy ez normális, valami fordító beállítás kérdése vagy bug.
És úgy tűnik ugyan ez a helyzet a C30 v2.0-val is
Kipróbáltam, nálam unsigned long változókkal jól működik még típuskényszerítés nélkül is (C30 3.31). Biztos unsigned long az a DWORD ?
sajnos igen
A Microchip TCPIP Stack-ben van, ettől igazán pikáns a dolog.... A hozzászólás módosítva: Dec 8, 2013
Kezdem azt hinni hogy fordító hiba....
C30 v3.12-vel 0xFFFF5678 a visszaadott érték..... ez azért így durva....
feladom..... 3.31 és az első 2 byte hol 0x0000 hol pedig 0xFFFF érték függő, de hogy hol fordul azt nem tudtam még kifigyelni
Harmadik bájt legfelső bitjétől függhet? Próbáld 0x12345678 és 0x1234D678-al.
Úgy tűnik igen.....
0x12345678 => 0x00005678 0x12345678 => 0xFFFF5678 csak nincs valami tipped? már 4 féle C30-al próbáltam, az eredmény ugyan az....
t_UTCTime == 0x1234D678 dwUTCSec == 0xFFFFD678 és természetesen minden változó DWORD azaz unsigned long.... A hozzászólás módosítva: Dec 9, 2013
Sajnos tippem az nincs, csak az a bájt felső bitje tűnt valószínűnek. Eleve fura, hogy unsigned long típusnál miért csinál előjelezést. Esetleg nézz meg olyasmit, hogy mit ad a fordító vissza a sizeof(DWORD) és sizeof(unsigned long)-ra. Elvileg 4-et kellene adni, de ki tudja...
Amúgy én is szívok az XC8-al, úgytűnik, hogy ha már kevés a memória a kontrollerben, akkor ezt-azt hibásan fordít...
Valami stack bugra gyanakszom, mert az átadott változót jó értékkel tölti fel... mintha a veremben az első kéát byte megzavarodna.....
a dolog érdekessége hogy benjami -nak jó. Már töröltem az összes fordítót, újra telepítettem a 3,31-et és semmi és semmi és semmi..... nem tudom elképzelni hoiyg ezt ne vették volna észre .... gondolom párezren használják a stack-et... A hozzászólás módosítva: Dec 9, 2013
Próbálj ki esetleg egy virtuális gép alatt egy teljesen új telepítést
Hali!
A progi warning nélkül lefordul? Nem lehet hogy a függvényt a forrásban előrébb hívod meg, mint a deklarációja szerepel?
Sziasztok!
Segítséget szeretnék kérni, a mellékelt programot milyen fordítóval lehetne hiba nélkül lefordítani? Most ismerkedem a C-nyelvvel, (a gépi kód az megy már valamicskét) de az általam fellelhető c fordítók nem fordítják le ezt a forrás listát. A vas úgy néz ki, hogy 3 digites hétszegmenses DVM voltmérő, a hex-et mellékelték hozzá, így működik is, de szeretném megismerni a "miérteket" is. Köszönöm előre is.
Szerintem CCS C-vel menni fog.
Szerk: csatoltam. (a .txt nem kell a végére) A hozzászólás módosítva: Jan 4, 2014
szia!
Nagyon köszönöm a gyors választ, mivel én is próbáltam vele, de nem ment - bennem van a hiba. Fontos volt tudnom, hogy milyen fordítóval próbálkozzam tovább. Igyekszem.
Baj van. lejárt a 45 napos demo intervallumom, és hiába próbálom meg törlés után újra telepíteni - feltelepül, de szép piros keretben közli, hogy lejárt a demom. mit lehet ilyenkor tenni? ötlet valakinek?
2 lehetőséged van:
1. Megvásárlod. 2. Google a barátod...
Igaza van Vicsys-nek google a barátod, nem akarlak más irányba terelni mint amit elkezdtél de én a Mikroc for PIC-et ajánlanám (V5.61) ha kicsit utánakeresel megtalálod a teljes verziót Én ezzel kezdtem el a pic-eket babrálni , és a fordítója is jó kódot szokott generálni.
Gondolom a meglévő file miatt kellene pont a CCS...
Sziasztok!
Túl vagyok az első sikeres fordításon A microC for PIC lett a befutó nálam, mégpedig egy jó kis projekt miatt, mellékelve a rajz is. A lényeg, könnyen telepíthető, és jól átlátható a fejlesztő rendszer, így a kisebb hibákat ami a linken a c file-ban van, lépésről lépésre sikerült kijavítani. bővebben itt: http://embedded-lab.com/blog/?p=396 Az áramkört próbapanelen megépítettem és kifogástalanul működik is! Még egyszer köszönöm a hasznos segítségeteket!
Üdv. Látom meg lett a siker. Ha elég energiát fektetsz bele bonyolultabbak is menni fognak idővel
Már megvannak az alapfeltételek - innen már szorgalom, tanulás, gyakorlás.
Igyekszem majd.
helló!Kezdő vagyok a PIC terén.flowcode4-5 ben írtam már progikat,de szeretnék assembly-ben és vagy C ben megtanulni programozni.PIC KIT2-m van.És csináltam egy teszt panelt LED visszajelzővel,LCD csatlakozással és a LED MATRIX-ot az LCD helyére lehet csatlakoztatni..16-os szériát tudnék programozni és a 18f2550-et.Felraktam az mplab-ot vin7-re,de beállt kékhalállal.Le kellett szenem csökkentett módban.valaki tudna segíteni.Olyan progi kellene,ahol: 1,meg tudnám írni a progit; 2,le tudnám fordíttatni vele hex-be,esetleg teszetlni tudnám.és ha lenne valakinek C és assembly jegyzete ahol le van írva,hogy mik a parancsok jelentései.Ilyen PIC-jeim vannak.16f887,16f886,18f2550,16f628A
emil címem:vasy21@freemail.hu Előre is kössz! |
Bejelentkezés
Hirdetés |