Fórum témák
» Több friss téma |
..Viszont további kérdések merültek fel:
Terheletlenül nagyon szépen működik, viszont ha a kimenetre rákötök egy FET-et (IRL3803), megint ugrálni kezd. Itt már inkább valami hardveres probléma lehet. Mit tehetek ez ellen?
Szűrd meg a motort. Ha azonos tápon van a motor a PIC-el, még ha a PIC előtt van is stabilizátor, akkor is bezavar.
Itt egy mórickarajz:
Köszönöm
A motoron van szűrés, más volta a gond. Gyenge volt a pufferkondi, és "megrángatta" a FET a PIC tápját.
Sziasztok! Egy kis segítségre lenne szükségem! ASM30-ban hogyan tudom címre tenni a pogram memóriába írt táblázatot? .ascii direktívával elhelyezem az értékeket, de szeretném ha fix helyen lenne, nem pedig a porgrammal együtt tolódna ide oda. Előre is köszi!
Ha jól értem a kérdést akkor az adott táblázat elején elhelyezett ORG kell neked. Az, hogy milyen értéket kell utána írni, az a pic- től is függ.
Megtörtént a kommunkáció.Ha a TXREG-be egy 'c'-karaktert teszek,akkor megjelenik a PCkit2 USART/tools menüjében folyamatosan egy csomó c-betű,de ha TXREG-be RCREG-et teszek,akkor nem látok semmit.Miért?
Szia!
Nem tudom, hogy ilyenkor a C fordító csinál-e hibakezelést, bár szerintem nem. Az is gyanús, hogy ha "c" betűt küldesz, akkor miért küldi folyamatosan. Annyit még érdemes lenne megcsinálni, hogy a
Illetve az RCREG-et nem közvetlenül rakod bele a TXREG-be, hanem egy segédváltozón keresztül. De valami azt súgja, hogy máshol lesz a hiba :\ Szerk.: mondjuk USART RX interruptba szerintem nem ajánlatos TX-et rakni. Inkább így lenne illendő: RX megszakításban lemented egy változóba a beérkezett adatot (ADATBE=RXREG), és beállítasz egy változót, pl. JOTTADAT=1; Ezt pedig figyeled a főciklusban (main), és ha 1 az értéke, akkor kiküldöd a lementett RX értékét, valahogy így:
A hozzászólás módosítva: Jún 7, 2015
Szia! Az org direktivát 16F és 18F nél használtam, de 24H nál máshogy vannak elvileg, referencia könyvben lehet átsiklottam rajta, de még majd keresem, de ha valakinek eszébejutna, megoszthatja velem
Ez van amikor fél infók alapján kérdezel. Illett volna azzal kezdeni, hogy milyen PIC.
Írtam hogy ASM30 fordítóval dolgozom.A direktívák a fordítótól függenek, nem a pic típusától.
ASM30-ból azért lehet következtetni, hogy 24 bites PIC-ről van szó
No, ez nem mindig igaz, de ez esetben részben jogos.
Ezt jól kibeszéltük, de ötlete nincs valakinek?
Egyébként a .org direktiva, nem azt csinálja ASM30-ban mint MPASM ben. A hozzászólás módosítva: Jún 7, 2015
Bővebben: Link
Az "address" mögé a zárójelbe kerül gondolom a kezdőcím. A hozzászólás módosítva: Jún 7, 2015
Köszönöm, erre van szükségem!
Szia!
Köszi a választ. Kezdő vagyok,a segítségeteket kérném.Csak annyit szeretnék csinálni,hogy megmérni egy akármilyen tv távirányító infra jelét,hogy egy LED-et felkapcsoljak.Odáig jutottam,hogy kommunikál a PIC a számítógéppel.Egy betűt kiír. Kipróbáltam amit írtál,de a Nop-ot nem fogadja el a gép.A JOTTADAT-ot egy megszakítás állítja?Több adat lesz,legalább 16 egymás utáni karaktersorozatra számítok.Azt mind egyből az ADATBE nevű regiszterbe tegyem?Hogy kell? Gondolom azért írja ki sokszor ugyanazt a betűt,mert az infra vevő adat lába 5V-ot ad ki nyugalmi helyzetben.
Szia!
A Nop végülis nem is kell oda.. Viszont így már más a helyzet, ha távirányító jelét akarod dekódolni. Az UART-tal nem fog egykönnyen menni, máshogy kell dekódolni. Én anno pl. így "vizsgálgattam": Bővebben: Link szkóp, meg "normális" műszerek nélkül. PIC-kel tömören szólva úgy tudod dekódolni a jelet, hogy megméred mennyi ideig magas, illetve mennyi ideig van alacsony szint. Ha rákeresel az RC5 protokollra, sok okosságot lehet találni. Annyi bökkenő van, hogy amíg az egyik távirányítónal x ideig tart egy impulzus, addig egy másiknál y ideig, úgyhogy érdemes valamilyen mérőeszközzel (akár ahogy én, hangkártya segítségével) megvizsgálni a jelet. Viszont ez így elsőnek lehet bonyolultan hangzik, de másodjára már nem annyira.
Na közben végigolvastam az előzményeket (picit megpihentél a projektben! sebaj, én is szoktam ilyeneket csinálni... ). Szóval akkor pontosan mi is lenne a feladat? A dekódolt adatot akarod UART-on elküldeni? Hogyan dekódoltad eddig a jelet?
próbálkoztam LCD kijelzővel,de nem jött össze.próbálkoztam i2c kommunikációval,de az sem működött.Szerintem a megszakításos méréssel jutottam a legközelebb a megoldáshoz.
Idézet: „Szerintem a megszakításos méréssel jutottam a legközelebb a megoldáshoz.” Szerintem is. Illetve anno én nem megszakítással csináltam, hanem egy főciklusban kezeltem le az egészet. Egyébként ha megépíted ezt az egyszerű kütyüt: Bővebben: Link (bár én ezt a verziót ajánlom inkább: Bővebben: Link), akkor amit kiír a Girder program, elvileg az lesz maga a kód is, legalábbis nálam megegyezett. De először szerintem valamilyen módszerrel győzödj meg róla, hogy milyen is a kódolása.. Akár a már írt hangkártyás módszerrel..
Mint azt már üzenetben is írtam többször, (mert már lassan egy éve kezdted el), szépen lassan az alapoktól kellene indulni...LED villogtatás (bár ahogy már láttam még az sem működött), megszakítások, timer-ek kezelésének megtanulása, és ha mindezeket már jól begyakoroltad akkor jöhet az infra és a PC.
Mindez nem fog sikerülni ha nem olvasol dokumentációkat is (pl hogy működnek a mikrovezérlők, milyen perifériák vannak benne, melyiket mire használják és hogyan kell kezelni őket, stb.) nameg adatlapokat, protokollokat. Csak egyszerűen innen onnan megszerzett kódból nem fogod megtanulni, ha meg igen akkor már rég olvasnád az infra adatokat számítógépen... Nem sértésnek mondom (és az üzenetben sem annak vettem) és nem akarom elvenni a kedved, de mint mindnnek ennek si megvan az elméleti része, először a mikrovezérlők lelkivilágát kell megismerni, azután már arra használod őket amire éppenséggel akarod
Hát igen.Jó nagy falat,pedig olyan könnyűnek tűnt.A LED villogtatás már működik,még a sebességét is tudom változtatni. Nemrég írtam ezt a programot,még a p-betűt is elküldi a számítógépre.
A main() végére még kell egy while(1); vagy while(1){//egyeb programrész} különben állandóan újrakezdi az egészet!...
A megszakításban nem a legjobb megoldás csak úgy adatot írni a TXREG-be (mi történik, ha még nem találta elküldeni a régi adatot...) inkább állíts be egy flag-et majd a while(1)-ben figyeled és ha '1' akkor ellenörzöd, hogy befejezte már a régi küldést és ha igen csak akkor írj bele újabb adatot (ahogy az előző programodban volt)... Ezért mondogatom folyton, hogy utána kéne olvasni, hogy mit miért és hogyan...
Sziasztok.
Az ebayen kapható pickit3 megfelelő PIC18F14K22 programozásához. Van véleményetek ezekről a programozókról? Bővebben: Link Bővebben: Link Még kezdő vagyok a témában, úgyhogy elkel a segítség. Köszönöm A hozzászólás módosítva: Jún 9, 2015
Üdv!
Természetesen jó hozzá. Feltéve, ha a klónozás jól sikerült, mert kb fél áron szerintem csak klónt lehet venni újonnan. Másrészt a második link az PICKit2, ami gyárilag fekete burkolatú, tehát ez biztosan klón. Inkább tegyél hozzá még egy kis pénzt és vásárold meg innen ChipCAD az eredetit, biztos ami biztos.
Sziasztok!
Egy PIC16F630-as mikrovezérlőt PICKit3-mal programozva ezt a hibaüzenetet kapom: Idézet: „Programming failed at EE Data address 0x0006” Ez az EEPROM hibájára utalhat? Lehetséges, hogy helytelen kódhasználattal tönkretettem az EEPROM-ot? Köszönöm előre is. Üdv, Ati
Üdv Hölgyek-Urak!
Kis segítséget kérnék PIC ügyben. Munka miatt egy ideje nem PICeltem, azóta gépet is cseréltem, egyszóval telepítettem ezt a ... MPlabX-t. No, ez nem akar velem szóbaállni. A saját examplekat megnyitja, remek. Az én régebbi (máig működő) projektjeimet már nem, sebaj, max rebuild. De már új projektet sem enged létrehozni! Kell ezt a cuccot esetleg aktiválni? Vagy esetleg valami kezesebb alternatívája van? Egyelőre ott tartok, hogy felgyújtom...
Üdv!
Ha nem Assembly-ben programozol, hanem C-ben, akkor azt külön kell telepíteni hozzá. A többinek mennie kellene. Aktíválni nem kell, csak a C fordítókat, ha megvetted valamelyik bővített változatát. Én ennyit tudtam segíteni (remélem), mert én csak az IPE-t használom belőle.
Hello!
"Természetesen" assembly. De gyanítom, hogy az OS bibije lesz ez. MPlab 8-as még ment rendesen XP alatt. Most W8.1 van fenn, ezzel akadhat össze. Holnap újra próbát teszek kompatibilitás módban, ha nem akkor teszek fel képernyőképet. Hátha az okosabb embereknek többet mond...
Az MPLAB X Java alapú és ezért szinte minden OS alatt működik. Így a Win8.1 nem lehet akadály, esetleg valami elérési úttal lehet valami baja, ami az XP alatt más volt.
|
Bejelentkezés
Hirdetés |