Fórum témák
» Több friss téma |
Próbáld a 376. sort így:
iDelay += ((unsigned)ADRESH) << 8;>>
Lenne még egy kis gond. Ez a táblázat annak eredménye, hogy megnéztem iDelay értékét semmi rákötve, illetve egy ugyanrra az értékre állított poti minden esetben. Miért vannak ezek a nagy szórások?
ANx - üresjárat érték - potméteres érték AN1 - 1023 - 1023 AN2 - 0 - 805 AN3 - 161 - 942 AN4 - 42 - 942 AN5 - 27 - 942 Eddig azt hittem, hogy an 4 és 5 rosz, de most látom, hogy ugyanazt az értéket mutatják, tehát jónak tűnnek. AN1 és 2-n már lefutott egy ADC ez előtt, tehát lehet, hogy az okozza a hibás értéket. De nem tudom biztosra. Ez most IC sajátosság, rossz a NYÁK-om, vagy rossz a programom?
Csatornaválasztás és konverzió indítása között várni kell valamennyit. Fejből nem tudom, adatlapban utánanézhetsz. Próbára az ADCON0bits.CHS = anx; sorok után tegyél be 1ms várakozást.
Egyébként az AD átalakítót csak egyszer kell beállítani és bekapcsolni, nem kell minden alprogramban újra beállítani, ott elég csak kiválasztani a csatornát, megvárni a megfelelő időt, és utána elindítani a konverziót.
Ismét hasznos válasz, köszönöm!
Most commenteltem a többi AD átalakítást, hogy ne zavarjon be és leteszteltem AN1-et. Sajna ez nem működik jól: 987 volt a legalacsonyabb érték, amit tudtam csinálni potméterrel. A láb az RA0/AN0/CVREF/VREF-/C1IN+/INT0/PGD Gondolom a Vref- miatt lehet a gond. Ugye? Azt kéne kikapcsolnom az ADCON1 regiszteren?
Milyen reviziójú a 18F14K22? Az errata -t olvastad már?
Köszi, eszembe se jutott! Pedig én is mindig felhívom rá más figyelmét!!!! A 18F97J60-nál is egy évig szenvedtem egy problémával, míg az errata-an megtaláltam a magyarázatot.
Most annyira fáradt vagyok, hogy összefolynak az angol szavak a szemem előtt, úgyhogy később fogom elolvasni.
Kicsit összetett ez a kérdés, ezért hozzáértő ember válaszát igényli.
Van egy DEE Emulation nevű dolog, amivel egyes PIC-ek Flash memóriájában emulálhatok egy eeprom-ot. Ezt meg is tettem, sikerült char hosszúságú változókat elmenteni és kiolvasni. Tettem egy próbát egy array mentésére, de nem hiszem, hogy jól sikerült. Ha mégis, nem vagyok benne biztos, hogyan is tudnám kiolvasni. Beszúrom ide a kódot, de mellékelem a projectet is:
Helló!
Van egy ilyen kódom:
Azt szeretném, ha valaki elmagyarázná, hogy a cillag s a &st miket jelentenek.
3. sor: definiálunk egy előjel nélküli egész típusú változóra mutató pointert, aminek a kezdőértékét is rögtön beállítjuk hogy st változóra mutasson.
10. sor: data változóba tegye be 'p' pointer által mutatott változóból az értéket. Érdemes átnézni a C nyelv mutató használatát.
A fenti példa kódot találtam a PMP busz beállításának optimalizásához. Szerintetek hogyan értelmezendő a OPTIMAL_PMP_WAIT_STATES értékének kiszámítása? Lényegében asm re akarom átültetni az eredményt.
Fogod a perifériabusz órajelét, megszorzod 0.000000075-el, levágod a tizedeseket belőle és ennyit kell írnod a WAITM-be. Ha nem PIC32-ről van szó, akkor a szorzat eredményéhez először még hozzáadsz 0.9999-et, és utána vágod le a tizedeseket.
Köszönöm a gyors választ! Még egy kérdés lenne: Én 18F et 48 MHz en hajtom, ekkor az az utasításciklusa 12 MIPS. A perifériabusz (Parallell Port) órajele ekkor melyik lesz?
Nagy valószínűséggel a 12 MHz. Pontosabb info az adatlapban található (pl. Timing diagram a Parallel port leírásánál).
Néztem az adatlapot, de nemderült ki sokminden róla. Viszont lenne még kérdésem, de ez egy C fórum, ezért átmennék a kérdésemmel ide.
Sziasztok!
Valaki tudna egy kis segítséget nyújtani nekem, hogy milyen programmal és hogyan kéne ezt a fájlt (pic.c) átkonvertálni .hex formátumba?
Szerintem a CCS Compiller is lefordítja.
A konfigurációs beállítást nézve a 9.81 verzió előtti HI-TECH PIC10/12/16 fordítót próbáld, de a delay.c-nek is meg kell lennie.
A "pic.h" és a
![]()
Köszönöm a segítséget, sikere megoldottam, HI-Tech -el meg átírtam egy delay.c -t és már megy is minden..és még egy kérdésem lenne hogy ezek a "for(i=0;i<8;i++)" sorok ez mit jelentenek vagy ez: "for(a=0;a<4;a++)" vagy "for(k=0;k<200;k++)" ?>>>
Ezek ciklusok, illetve ez csak a feje annyiszor fut le amennyi a bennelévő változó kezdeti és végértéke a kezdő nem feltétlen nulla, a végző nem feltétlen pozitív, a lépés nagysága nem feltétlen 1, tehát elég nagy a szabadság.... ez a C
Meglehet oldani egy rotatry encoderrel azt, hogy:
1. ha tekerem akkor hangerőt szabályoz 2. ha megnyomom a középső gombot akkor mute 3. ha x mp-ig nyomom a középső gombot stand by ![]()
Persze, csak szoftver kérdése
![]() Mi a kérdésed ? Steve
Igen, meg lehet oldani vele...
Köszi, mindkettőtöknek.
![]() Egyelőre más kérdés nincs. ![]()
Sziasztok!
A mellékelt thermostátokat szeretném kipróbálni. A HW-es rész megépítés, pr./hex/ Pic-be töltése, beüzemelés nem okoz gondot. Korábban, tíz-egynéhány évvel ezelőtt próbálkoztam Pic progz.-al, de mivel egy led villogtatásához kb. másfél oldalnyi pr.-ot kellett volna írni, feladtam. A mellékelt Thm.-ok forrás fileket próbáltam Hex-be konvertálni sikertelenül és itt elfogyott a türelmem. A mellékelt forrás fileket kérném hex-be fordítani. Köszönettel: Kepitu
Sziasztok!
A mellékelt forrásfile HEX-be fordításához kérnék segítséget. Köszönettel: kepitu Bővebben: Linkhttp://www.guidecircuit.com/Circuit-Microcontroller-D...at.htm |
Bejelentkezés
Hirdetés |