Fórum témák
» Több friss téma |
Mit vársz el a fórumtársaktól?
- Ötletek: Az A/D mérések elredményét skálázni kell, BCD formára hozni, ASCII karakterekké konvertálni és az LCD -re kiírni. - Kész programot: Biztosan nem készíti el senki sem olyanra, mint elképzelted... Sokkal jobb, ha nálad van a forrás, bármikor módosíthatod... A megírása közben szerzett tapasztalatokról még nem is szóltam. Itt a fórumon számtalan leírásban találhatsz olyan programrészletet, amit egyszerűen átalakíthatsz a saját igényeidre... Egy kis keresés a fájlmellékletekben, leírásokban és a Gooooogle -val, rengeteg ötletet adhat.
Idézet: Nos, mivel ebben a fórumban tettem fel a kérdést: minék több segítséget. „Mit vársz el a fórumtársaktól?” -kész programot, ha valakinek van ilyen és megosztaná velem. (Google találat esetén is ez a helyzet) -milyen PIC-el induljak el és minél több segítséget a tapasztalt kollégáktól
Kész programokat a Kapcsolások szekció PIC alrovatában keress! Ha ott nincs kedvedre való, akkor itt pláne nem lesz. A fórum nem projektek közlésére lett kitalálva, hanem a tanulni vágyó kérdezők segítésére. Hasznos mintapéldákat a Mikrochip alkalmazási mintapéldái között is érdemes keresgélni. A Microchip Solar Energy Harvesting Development Kit dokumentációját is érdemes megnézni, hátha ad valami jó ötletet.
Szia!
Az LCD kezeléséhez min. 4 adat és min. 2 vezérlő láb kell, a méréshez csatornánként 2 bemenet (áram és feszültség), 2-3 táp, 1 láb MCLR (nem lehet analóg és kimenet). 1 csatornára 11..12 láb. Olyan típus kell, amiben van A/D: 16F684 (14), 16F88 (18), 16F690 (20), 16F886 (28), 16F887 (40) stb. A 18F2423, 18F2523, 18F4423, 18F4523 12 bites A/D -val rendelkezik.
Sziasztok!
PIC18F26J11 RTCC moduljával gyűlt meg a bajom. A PIC 8 MHz belső oscillátorral megy, az RTCC-hez 32,768 kHz külső kristályt tettem. RTCC inicializálása:
Ami számomra gondot okozott: ALRMCFG regiszterben beállítom a rendszeres időközönkénti ALARM-ot. 0.5s, 1s, 10s működik, megszakítást generál. A kódon nem változtatok semmit, csak átírom 1 percre az időtartamot és már nem generál megszakítást. PICKIT2-vel programozok és debuggolok. Az RTCC-működik, RTCVALL és RTCVALH értéke változik. Aki tud valami használhatót, azt megköszönöm. Zs
Idézet: „Kész programokat a Kapcsolások szekció PIC alrovatában keress!” Ott sajnos nem találtam. Idézet: „A fórum nem projektek közlésére lett kitalálva, hanem a tanulni vágyó kérdezők segítésére.” Azért reménykedtem, hátha valaki már használ ilyet és megosztja velem.
Kösz az ötletet. Ebben az irányban kutatok tovább.
Ezt találtam:
Wattmeter 16F88-ra lett kitalálva. Igaz, meglehetősen szűkszavú. Max. megépítem és kiderül, hogy ezt akartam-e.
Nem ismerem ezt a típust, de úgy láttam, hogy jól állítottad be az intervallumot és ha eddig ment a kisebb értékekkel, akkor most is kellene ! Nem lehet, hogy valami más ebben az időtartamban "megfogja" a megszakítást ( pl. letiltod, rossz helyre ugratsz, megtelik a verem és újraindul, stb., mert a hosszabb időben már lehet gond ?! ) !
Steve
Idézet: Keresgélni kell, mert van, aki lusta beírni a kulcsszavak közé, hogy "PIC". „Ott sajnos nem találtam.”
Leegyszerűsítettem az egész programot. A bemásolt kód a teljes program. Most már csak a 0.5s és az 1s lejárta után okoz megszakítást, 10s és afölött nem.
(A config ugyanaz)
Zs
A prioritásos megszakítások biztosan jól vannak beállítva? Elvileg úgy indul a PIC- hogy kompatibilis módban, de én nem hiszek a véletlennek, mindig beállítom, amit biztosan szeretnék. Lehet, nem ez a hiba, de még ki tudja.
Először szerepelt a kódban az alábbi sor:
BCF RCON,IPEN ; ne legyen prioritás Ezzel sem működött. Aztán megnéztem az adatlapot, és tényleg - ahogyan írtad is - power on reset után így indul. Debugger szerint is jó. Úgyhogy kivettem. Zsolti
Én benthagynám, mert én mindent beállítok, azt is, amit nem használok...
Szia!
12. sor - Ne állítsd a GIE bitet, hagyd a kontrollerre... 25. sor - A movf utasítás állítja a STATUS bitjeit, elrontja azt, amit a 24. sor visszaállított. 26. sor - Ne állítsd a GIE bitet, hagyd a kontrollerre, majd a retfie visszaállítja... Hiányzik egy bcf PIR3,RTCCIF sor...
Nagyon köszönöm a segítséget !
Megoldódott. Vagyis csak félig. Mivel először 1 percre még működött, aztán már arra sem, így éltem a gyanúperrel... Másik, ugyanilyen PIC vígan működik, az eredetileg megírt programmal is. Szóval a hiba tényleges okára nem jöttem rá, de gyanítom, hogy hardveres. Mást nem tudok elképzelni, mert minden szóról-szóra, config bitre is ugyanaz. Gyakran fordul elő HW hiba PIC-eknél? Zsolti
Hálás köszönet.
Szerintem ott szúrtam el, hogy ragaszkodtam a "watt", vagy "teljesítmény" szavakhoz. Ezért nem hozott eredményt a keresés. Még egyszer köszönöm a segítséget. Ez így biztos forrásból van és a videó alapján működik is. Ami nem hátrány.
És ha nem veszed telhetetlenségnek, ajánlanál égetőt hozzá? Nekem ugyanis egy welleman k8048 égetőm van. ez elboldogul a 12F..., 16F... sorozatokkal, de a 18F... PIC-eket nem ismeri. Van ugyan rajta ICSP kimenet, de ez nem hiszem hogy javít a tényen.
PICkit2 vagy az újabb típusokhoz PICkit3. Mindkettőnek létezik klónja is.
Nem hardver hiba, inkább ott keresgélj, amit Hp41C írt! Azok fontos dolgok, javítsd ki!
Hali!
Megszakítások kezelésében kérek segítséget. A Piccoló project segítségével, PIC18F4550-l készítettem egy RA0 analóg jel, RB0 SDA, RB1 SCL I2C beolvasását C -ben. USB kapcsolaton küldi a mért adatokat a PC-nek, VB6-ban írt progi megjeleníti. Van egy szintén interruptot használó jól működő időzítőm is. A két programot kellene összedolgozni. Hogyan kell a két megszakítással megoldani a programot? Üdv.
Nem ismerem pontosan a Piccoló megoldását, de ha jól sejtem nem használ megszakítást az USB gyárilag. Ha icserny átalakította, akkor igen. Ha mellé akarsz tenni egy timer megszakítást azt megteheted, csak le kell kezelned a megszakítás jelző bitjét és engedélyezned kell a megszakítását. Fontos, hogy ne tölts sok időt a lekezeléssel, mert akkor elveszed az időt az USB-től!
Idézet: Én úgy emlékszem, hogy már vagy két éve az interruptos kiszolgálás az alapértelmezett, de letiltható. Ezt a megoldást használom a PICCOLO projektben is, ahol a USE_INTERRUPT definiáltsága dönti el, hogy megszakítással vagy lekérdezéssel menjen az USB kezelés.„ha jól sejtem nem használ megszakítást az USB gyárilag.” A kérdező gondját az okozza (gondolom én), hogy az I2C kezelés interruptos kezelésére nem mutattam mintapéldát. Ami rosszabb hír: a támogatói függvények nincsenek is felkészítve a megszakításos kezelésre, tehát azokat át kellene írni. Idézet: „Én úgy emlékszem, hogy már vagy két éve az interruptos kiszolgálás az alapértelmezett, de letiltható.” Lemaradtam. Én annó átalakítottam interruptosra, de pollingolós. A gyárit megnézem milyen, mert érdekel, hogy a valós interruptokat használják, vagy ők is timerrel pollingolnak, mint én. Egyébként így is jól működik, főleg a HID, mert az atomstabil és nagyon kényelmes! Idézet: Az USB megszakításait használják, nem kell hozzá timer.„A gyárit megnézem milyen, mert érdekel, hogy a valós interruptokat használják, vagy ők is timerrel pollingolnak, mint én.”
Kíváncsiságból kipróbáltam azt is, hogy a gyári rutinokba belenyúlva az alacsony prioritású szintre is át lehet tenni az USB kiszolgálást. Ennek akkor lehet értelme, ha a magas prioritású szinten nagyon időkritikus, de minimális kiszolgálást igénylő feladat fut.
Köszönöm, ezek szerint a lekezelő rutinban van a megszakítás azonosítása, mert gondolom más megszakítást is ki lehet szolgálni mellette!?
Ehhez annyit fűznék hozzá, hogy ismét látható egy negatív példa, amit a microchip programozói lelkesen favorizálnak, hogy feleslegesen meghívnak egy szubrutint, ezzel időt pazarolva, ahelyett, hogy előtte eldöntenék, hogy meg kell-e hívni vagy sem. De mit várhatok tőlük, ha egy TXREG=változó helyett egy szubrutint írnak, paraméter átadással putcUSART() néven, ami húszszor annyi sort fordít be...
Azt ne felejtsuk el, hogy a Microchip-nel chip-et gyartanak, nem szoftvert / firmware-t fejlesztenek Szoval azon nem szabad fennakadni ha a peldaikon vagy a konyvtaraikon meg jocskan lehet csiszolni / faragni...
Én meg úgy gondoltam, mint amatőr, hogy többet várhatnék tőlük, profiktól, de lehet, hogy igazad van.
|
Bejelentkezés
Hirdetés |