Fórum témák
» Több friss téma |
Használd a Pickit2 saját programját, akkor tudsz égetni és szimulátorozni is egyszerre.
Idézet: „Másik kérdés: szimulációnál ( MPLAB SIM ) a lépéseknél az asm-et mutatja. Be lehet állítani, hogy csak a C utasítást lépje le és mutassa, hogy mi történik ( ill. ezt úgy látom, hogy az előzetes részben csinálja, "ahol én még nem is írtam utasításokat" <-- inicializáló rész, ezt ki lehet kapcsolni?” Tegyél egy breakpointot a legelső utasításra a saját kódodban, és akkor F9-et nyomva a saját inicializálása lefut, és már csak a te kódodat lépteti. Amúgy ha épp a C ablak van felül, akkor F7-el C soronként léptet, míg ha a Program Memory vagy a Disassembly Listing van felül, akkor meg asm utasításonként léptet. Arra vigyázz, hogy a Procedural Abstraction optimalizálást kapcsold ki, a debuggoláshoz, mert eléggé meg tudja keverni a dolgokat.
Igazából logikus, amit indokként említenek, de ha eddig jó volt, akkor igazán hagyhatták volna ezután is úgy, vagy esetleg figyelmeztető üzenetet tettek volna.
Amúgy van 8.36-os MPLAB.
Sziasztok!
Miért csinálja az MPLAB, vagy a PIC, hogyha egy 16bites int-be beírok 1-et(akár direktbe, vagy a programból), akkor 256 lesz az értéke a watch ablakban? Illetve bármit beírok és akárhol, akkor tökre nem az lesz. Az alsó és felső bájt fordítva van a binary nézetben, ezért lesz az 1-ből 256. De miért van fordítva? ICD2-vel debuggolok egy 16F88-ast és C-ben van a program. De végül is ez nem a programtól van szerintem. Köszi! Tibus
Köszönöm a segítségedet!
A "Procedural Abstraction optimalizálás" merre található ? Steve Idézet: „A "Procedural Abstraction optimalizálás" merre található ?” Project/Build options/Project menüpontban, MPLAB C18 fülön a Category: legördülő listán Optimization-t választva. De megspórolhatod a megkeresésére fordított időt, ha fordításkor ezzel az üzenettel találkozol: This version of MPLAB C18 does not support the extended mode and will not perform all optimizations.
Watch ablakban tudtommal lehet állítani, hogy melyik bájtot tegye előre, talán rosszul van a sorrend beállítva (ezt csak te állíthattad el, mert alapból eddig mindig jó volt).
De áruld el, hogy milyen C fordító, és jó lenne, ha a kódot is megmutatnád.
A projekt beállításainál, az optimalizálásoknál.
Talált, süllyedt
Mit tudok tenni az ügy érdekében, hogy legyen ilyen lehetőségem? Steve Idézet: „Mit tudok tenni az ügy érdekében, hogy legyen ilyen lehetőségem?” Csak azért, hogy legyen mit letiltani? A Standard-Eval verzió elvileg 60 napig tudja.
Szia Potyo!
Köszi a választ! Tényleg lehet állítani a sorrendet, de ehhez én tuti nem nyúltam hozzá, de egy vadiúj projektnél nem csinálta, szóval rájöttem, hogy az MPLAB-bal volt a kavarás. Amúgy ccs fordítót használok, a program meg tényleg nem számít, mert a végére már szinte csak egy sor volt benne, ahol két számot összeadtam De akkor elvileg a program maga jó volt, tehát a PIC-en belül az a szám volt, aminek kellett lennie, csak én láttam valami hülyeségnek, igaz? Köszi! Tibus
Csak a megjelenítésvolt rosszul beállítva, emiatt a jó adatot rosszul mutatta. A Watch ablakban jobb egérgombbal kattintva előjön egy menü, amiben a Properties pontban beállítható a méret (hogy hány bájtot olvasson össze), a formátum (hex/bináris/decimális/float stb), s a bájtok sorrendje (High:low vagy Low:high). Na, ez az utóbbi volt rosszul beáll(ít)va!
Üdv!
Sajnos még csak most kezdtem Hi-Tech C-vel dolgozni, ezért volna egy kérdésem, hogy a következő progrmarész mit csinál pontosan:
Valami jó C nyelvi oktató dokumentumot tud valaki a neten? Köszönöm előre is!
A ChipCAD tanfolyami lapjáról letölthető a a C programozás alapjai-val foglalkozó jegyzet.
Az általad belinkelt kódból többé-kevésbé ki lehet sillabizálni, hogy mit csinál. De hogy miért csinálja, azt ebből a kiragadott részből csak találgatni lehet. Mindenesetre ez egy swich elágaztató utasítás egyik esetének tűnik (állapotgép?), amikor a switch-ben vizsgált változó értéke éppen 12. A line változó valószínűleg egy kijelző pontsorait számlálja. Ha a 8-cal történő osztás maradéka 7 (a karaketersorokat elválasztó üres sor?), akkor csak t=1 beállítás történik. Ha pedig k éppen nyolccal osztható (ez feltehetőleg a line-on belül egy újabb karakterpozíció?), akkor egy számított helyről elővesz egy bájtot ( a csillag az indirekt hivatkozás jele), a value nevű változóba teszi, majd bitenként komplementálja. A megjegyzés arra utal, hogy a hardverben van egy invertálás, s a LED-eket a 0 érték gyújtja ki, tehát 0 kell oda, ahol az elővett adatban 1 volt (és viszont). A cnt_flag változó a mutatót előállító kifejezés karakterenként léptetett indexe, ezért azt léptetjük. A t= value &1; kifejezés t-be a kijelzendő adat legalsó bitjét teszi. Ez valami visszatérési értéknek tűnik, gondolom, azt mondja meg, hogy a (line, k) koordinátákkal jellemzett pontban ki kell-e gyújtani a LED-et. (Az elválasztó 7. sorokban t =1, tehát ott nem gyullad ki a LED...)
Ezt magam sem írhattam volna le szebben. Nagyon jó volt olvasni a válaszodat. Le a kalappal...
Szerintetek lehet bit tömböt létrehozni C18-ban? Valami ilyesmire lenne szükségem:
Csak az így nem működik természetesen
Huhh, most ez annyira nem rémlik nekem C ből, de az unionban levő struct oknak nem kellene nevet adni ?
Vagy ha nem adsz neki nevet akkor minek a struct ?
Találtam itt példát bitfieldre, de tömböket még soha nem láttam bit...C ben.
Nem muszáj, vannak fordítók, amik megeszik anélkül is. Link
Igen, ezt ismerem, így vannak az SFR zóna bitjei is definiáva a header fájlokban. Elvileg a C szabvány nem foglakozik bitekkel, a bájt a legkisebb egység. Ugyanakkor gondoltam, hátha van valami bővítmény ezzel kapcsolatban a C18-ban, amiről én nem tudok.
Itt épp a példában nem lényeges a struct, de ahol konkrétan használnám, ott még van másik struct is, amiben vannak különböző hosszúságú elemek (8 és 16 bitesek vegyesen, illetve jövőbeli bővítésre is fel kell készülni, azért megy egészen 256 bitig). A bytes tömb igazából csak az inicializálás miatt van, később ez nincs használva.
Hello
Én nem tudom ezeket hogy kell programozni.Teljesen amatőr vagyok. Valaki segítene hogy hogy kell ezeket programozni Előre is köszí
Segíts magadon, Isten is megsegít...
Vannak könyvek (többnyire angolul, ritkábban magyarul), adatlapok, internetes honlapok, tanfolyamok, sőt, van "PIC kezdőknek" c. topik is Bővebben: Link
Kérdezni csak konkrétan érdemes, csak arra várható érdemi válasz.
Nézz fel az oldalamra, ott írok a kezdőknek arról, hogy szerintem hogyan érdemes elindulni.
Sziasztok kéne egy kis segitség
***** Nem picbe kell se nem avrbe . Sajnos rossz fórumot választottál a kérdésednek, számítógépes programozással itt nem igazán foglalkozunk (egy-két soros- vagy párhuzamos portbirizgáló téma ellenére sem). -- kobold
Rovid valasz: Nem.
Hosszu valasz:
Sziasztok!
Azt írja a HiTech C program súgója, hogy: In MPLAB, set locations path to C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe for compilator, assembler and linker. De nem találok semmit, ahol ezeket be lehet állítani. Valaki esetleg tudna segíteni, hogy pontosan merre és hogyan? |
Bejelentkezés
Hirdetés |