Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Tettem bele egy kis várakozást is, hogy leolvashato legyen az érték!
Most nincs elottem a doksi, de ugy emlekszem van a C18-ban delay rutin gyujtemeny. Persze semmi gond az ilyen fajta kenyszer varakozasokkal, csak egyszerubb lenne hasznalni a mar meglevo dolgokat.
A c30-ban nagyon csirke delay van, de a di jasio féle könyvben van egy ugyan ilyen.
Jogos az észrevétel, de ez ahoz kellett, hogy tudjak SPI-t kezelni és nem akartam a delay.h-t előkeresni. Amugy abban, ha jol tudom, ms -ban lehet megadni a késleltetést, ami kicsivel profibb megoldás
Amugy szerintetek így jó? A lassítás miatt az alsó és felső 8 bit leolvasható, de szerintem bitfordítás történt... :S Erre van valami egyszerű megoldás, vagy oldjam meg okosan?
Még mindig nem értem, hogy mit csinálsz:
- getsSPI(SPI_Read,5); mit olvas, és minek olvas, ha úgyis eldobod? - miért olvasás után csinálod a tesztelést, miért nem előtte? Ja, és miért nem vizsgálod a visszakapott állapotot? Sziasztok! Szeretnék időjárás figyelőt készíteni PIC-el úgy , hogy adott hőmérsékleti értéknél SMS-t küldjön. A problémám az hogy a programozás nagyon távol áll tőlem és abban kérném a segítségeteket, hogy ha valaki vállalna ilyen jellegű munkát kérem jelentkezzen. Tudom ez nem egy egy munkavállalói oldal,de nincsenek programozói kapcsolataim.....
Altalaban az ilyen kereseket az apro hirdeteseknel szoktuk feladni. A forum teruleten technikai kerdesek es valaszok hangzanak el inkabb.
Sziasztok.
Terveztem egy kapcsolást pic-kel. Áramot és feszt mérne a kapcsolás. Szerintetek ez így működőképes lesz? Az értékeket ne nézzétek mert egy régi rajzot bontottam szét.
Az áram mérést hogy is gondoltad? (Bár ez erősen nem PIC téma!)
Az áramfigyelő ellenálláson átfolyó áramerősség hatására pár milivoltos fesz keletkezik és ezt figyelem.
Bocsánat! Kérdés törölve. Nem azt csináltam amit akartam. Ezt még gyakorolni kell
[OFF]Amugy ha lehet akkor ne PDF-be csatoldd, hanem pl PNG-ben, mert a PDF-et nekem kulon le kell toltenem es megyitnom -- maceras, meg felesleges is mert ugyis csak ugyanaz a kep lesz bele agyazva a PDF formatumba...
Azt szeretnén csinálni, hogy egy TC77-es IC-vel mérem a hőmérsékletet, és a kapott értéket SPI-n lekérdezem.
Az IC 13 biten mér, ezért ugy gondoltam 16 bitet (int tipust) olvasok ki, és ami fennmarad, azt az elején feltöltöm 0-ákkal. Majd 8 biten a látvány miatt kijeleztetem. Ön szerint hogyan kellene ezt megtenni? Vagy hogyan szokták? getsSPI -vel határozza meg hány byte-ba olvas Ezt pedig nem értem teljen mire vonatkozik: Idézet: „miért olvasás után csinálod a tesztelést, miért nem előtte? Ja, és miért nem vizsgálod a visszakapott állapotot?” A kód:
Én sem tudok mást a témáról, mint amit az spi könyvtár dokumentációjából vagy a forráskódból ki lehet olvasni.
Az alapján a getsSPI() stringet olvas, tehát ide, a hőmérőhöz nem való. (Gondolom, szöveget tároló EEPROM olvasásánál hasznosabb) A ReadSPI() pedig tudomásom szerint a getcSPI()-hez hasonlóan 1 db bájtot olvas csupán, hiába teszel a baloldalra 16 bites változót. Úgy gondolom, hogy a ReadSPI() függvényt kétszer kellene hívni, és a két bájtost súlyozottan (vagy a magasabb helyiértékű bájtot 8 bittel balra léptetve) összeadni. De a részleteket a dokumentációból vagy a forráskódból kell pontosítani, ami most pillanatnyilag nem áll rendelkezésemre. A DataRDYSPI() pedig az én értelmezésem szerint arra való, hogy olvasás előtt megnézzük vele, (egy if vagy while utasítás feltételebe rakva)hogy érkezett-e adatbájt. Lehet, hogy ilyen egyszerű esetben nincs rá szükség, de olvasás után rakni biztosan fölösleges.
Üdv mindenkinek!
Úgy tönkre mehet egy PIC, hogy a benne lévő programot futtata hibátlanul.Aztán kitöröltem belőle a programot.De mindig hibát ír ki ellenőrzésnél, ha új programot akarok beletölteni. ( A program biztos hogy jó amit bele akarok tölteni, mert már többször használtam.)
Verify falied at address 0000h!
ICprog 1.06 - os verzióját használom.
Ellenorizd, hogy a kod vedelm be van-e kapcsolva a PIC-en, ill probaldd meg bulk erase-el torolni. Ellenorizd tovabba a Vdd es Vpp feszultsegeket programozas kozben. Nezd meg ott van-e a PIC laban a Vdd es Vss kozt a 100nF hidegito keramia kondi. Ha tul hosszu a kabeled akkor vedd rovidebre... Most hirtelen ezek jutottak eszembe.
Gondolom JDM-mel programozol?
Igen JDM - mel programozok. Eddig még soha nem fordult elő ilyen hiba, pedig nem most programozok ezzel az égetővel elsőre. 16F628A típusú PIC-et használok . Ha 16F84A töltöm be a programot , akkor az hibátlanul beletöltődik. Persze átírom a kódot a megfelelő PIC - re.Az nem lehet a gond. A kódvédelem ki van kapcsolva .
Hello!
Potyo! nagyon köszönöm, hogy ilyen részletesen írtad le nekem, értem az egészet Kérdésem az lenne még, hogy elég egy "fototranzisztor"-t betenni, ami veszi az adatot a távirányítóról, vagy TSOP családból kell kiválasztanom egy típust?! El is mentettem ezt az írást! Köszi mégegyszer
Van itt egy egyszerű háromcsatornás IR távvezérlő projekt leírás. Érdemes elolvasni!
Szerintem, ha jol vettem ki:
DataRDYSPI() van e még hátralévő adat A többi tényleg 1 bytot olvas, de void getsSPI( unsigned char *rdptr, unsigned char length); és itt a length-nél hány byte-ot olvasunk azt kell megadni. Én így értelmeztem a dolgot. De ha valaki tudja hogy kell az SPI-t azt szivesen veszem, elvégre ez a legegyszerűbb soros kommunikáció. üdv.: Bubu Idézet: „Szerintem, ha jol vettem ki: DataRDYSPI() van e még hátralévő adat” Nem, ez honnan is tudhatná? Azt nézi, hogy van-e már beérkezett bájt (az SPSTATUS Idézet: „void getsSPI( unsigned char *rdptr, unsigned char length); és itt a length-nél hány byte-ot olvasunk azt kell megadni.” De a "hány bájtot" arra vonatkozik, amit az rdptr-rel megcímzett változóba pakol, nem pedig arra, amit utána a getcSPI vagy ReadSPI-vel olva, mert azok mindig 1 bájtot olvasnak. (Egyébként a getcSPI csal alias név a ReadSPI-hez). A getsSPI egy ciklusban hivogatja a ReadSPI-t... Mindezek pillanatok alatt kiderülnek, ha belekukkantasz a telepítési könyvtáradban levő forrásfájlokba!
Idézet: „De ha valaki tudja hogy kell az SPI-t azt szivesen veszem” ''Ki tanyája ez a nyárfás? Nem hallik be' a kurjantás! Vagy alusznak, vagy nem hallják, Vagy talán nem is akarják!''
Hmm...
Teljesen igaza van! Eléggé félreértelmeztem a dolgot! :S És az idézet is elgondolkodtató... Tehát akkor , ha az *rdptr pointer a amire hivatkozni kell? És mondjuk egy int tipusba hogyan tudom a 13 bitet beshiftelni? Idézet: „És mondjuk egy int tipusba hogyan tudom a 13 bitet beshiftelni?” Tegnap már írtam: két bájtot kell olvasni egymás után, és megfelelő helyiértéken kezelve össze kell adni. Lehet union-nal és struct-tal játszani (ebben a topikban az union szóra kell rákeresni), s akkor eleve egy integer változó alsó és felső felébe lehet tölteni a beérkező bájtokat. Lehet a ReadSPI() függvény forráskódjának mintájára egy új függvényt írni, amelyik eleve két bájtot olvas, és már int típusú a visszatérési értéke - de hadd ne szabjak már korlátokat az alkotó fantáziának! Ha megoldható, akkor mellőzzük az önözést, itt nem szokás!
Megjelent a Microchip Microsolutions magazinjának szeptemberi száma.
Hello mindenki!
Egy gyors kérdésem lenne. Szeretném kiírni egy szám értéket LCD kijelzőre. Az értéket az egyik ADC csatornáról olvasom be csak annyi a gond, hogy "címletezni" kéne az értéket mivel máshogy nem tudom megnézni, hogy milyen karaktereket kell kiírnom. Hogy lehetne ezt megcsinálni? Arra gondoltam, hogy osztással működne a dolog mint ahogyan azt régebben Pascal-ba is meg lehetett csinálni
csak az a gond, hogy valamiért itt mégsem megy. :S MikroC-t használok egyébként... PIC: 18F4550 Köszönöm a válaszokat előre is! Bye!
Közbe rájöttem, hogy nem jól írtam. :S
mennyivel = 1000; szam = ADC_be; ismétlés amíg ( mennyivel > 1 ) { karakter = (szam/mennyivel); szam = (szam-(karakter*mennyivel)); mennyivel = (mennyivel/10); } Bocsi a dupláért.
Ez nem jó?
Nem kotozkodeskeppen, csak az itoa-nak van egy harmadik parametere ami egy string buffer, ugyanis a hivo felnek kell lefoglalni megfelelo helyet az atalakitott karakterlanc szamara. Ahogy most van ugy a stacken letrejon egy hely, es utana annak pointerevel ter vissza -- de kozben a stackrol a hely felszabadult es lehet masra lett felhasznalva...
|
Bejelentkezés
Hirdetés |