Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Azon kívül nem látok "org"-ot a kódban, ez nem tudom, mennyire baj esetleg, és nem NOP az első utasítás.
Helló Fiúk.
Köszönöm, majd kipróbálom. Köszönettel.
Sendi,
Nem igazan latom a javasolt modositasokat... 1. NOP a 0-as program cimre 2. ahogy potyo mondta kondifg bitek a forrasba, ott allits be mindent, hogy esetleg mi is lassuk mi hogy van es tudjunk segiteni 3. az INC file-ben benne vannak a definiciok, miert nem hasznalod? ezek az ADCON1, 7 meg egyeb szamok eleg csunyak, masreszrol nehezebb latni mit is akarsz, hozza kell olvasni a kommentekek folyamatosan - szerencsere az legalabb van... Amugy szerintem ennek a programnak mennie kell.
Helló trudnai.
Eddig csak az első javaslataitokat csináltam meg, így nem kérdezett rá a WDT-ra és az alacsony fesz. programozásra, mert fixen beállítottam a MPlab-ban. A többit csak reggel lesz időm megtenni. Azért rendesek vagytok, hogy segítetek az öreg csontnak. Köszönettel holnapig.
Helló trudnai
Na beírtam amit ajánlottatok. El is indult. Köszönet. De kerdésem, hogy miért kell a 0-ás címre NOP utasítás, és miért csunya az ADCON1, 7 utasítás? Köszönettel. Idézet: „miért csunya az ADCON1, 7 utasítás?” Mert minden bitnek van neve. Ennek az ADFM. Még megjegyzést sem kell mögé írni, mert eleve szemléletes! Idézet: „miért kell a 0-ás címre NOP utasítás” Valószínű azért, hogy nehogy egyből elugorjon a reset után a program, mielőtt a debugger átvenné a stafétát. Egyébként meg azért, mert az adatlap ezt írja, bár ez nem valami kielégítő válasz, viszont helytálló.
Orulok, hogy sikerult, Sendi!
NOP azert kell az elejere, mert nem a break pointoknal all meg az emulator, hanem amogotti utasitasnal. Namost 877-nel valahogy trukkosen oldottak meg a lepesenkenti vegrehajtast - ha jol sejtem break pointokkal - es igy ha az elso utasitas nem NOP akkor nem kepes megallni, nem kepes debugba allni - ennel pontosabb infot nem sikerult eddig talalnom, talan mas tud bovebb infot? Megjegyzem sokszor inkabb szimulatort hasznalok mint hardver emulatort, mivel ott ilyen gondok nincsenek - ott meg sajnos az aramkori elemek hianya miatt hibas aramkorbol adodo mukodesi zavarok nem talalhatoak meg, az csak algoritmus elemzesre jo ertelem szeruen. "BCF ADCON1, 7" azert csunya, mert igy ranezel es el kell gondolkodnod mi is volt a 7. bit? Ha ehelyett azt irod, hogy: "BCF ADCON1, ADFM" akor mar konnyebb emlekezni mi is volt az. Mikor irod a programot is konnyebb ezekre a nevekre emelkezni, minthogy ujra es ujra kisilabizalni hogy akkor a 7. vagy a 6. bit volt az - es ha veletlen rosszat irsz be hiaba irod a megjegyzeshez, hogy az mi, attol a programod ugyanugy a rossz bitet torli... Nezd meg az "MPASM Suits\p16F877a.inc" filet, abban vannak a definiciok, te be is inkludalod a kododba. Ilyen blokkokat talalsz, hogy lasd a definiciokat:
Helló trudnai.
Igen világos amit írtál. Köszönöm, megint tanultam egy kicsi. Az hogy egy bitre utalok a nevével, ez mindig érvényes? pl. egy portnál írhatom hogy PORTA, A0 vagy csak PORTA,1 Köszönettel.
De nem egyszerubb definialni magat a labat vagy regiszterbitet?
pl. #define lcd_clk porta,5
Dehogynem, ha megnezed a standard include file-okat, ott inabb a specialis file regiszterek (SFR) vannak definialva, hogy azokat neked mar ne kelljen kulon definialnod.
Portoknal vegulis mindegy, irhatsz PORTA,0-t is akar, mindenki tudja, hogy az a 0. bitje a PORTA-nak... De ha van egy alkalmazasod, akkor egyszerubb es konnyebb is kesobb magadnak definialgatni, szoval ha #define lcd_clk porta,5 van akkor kesobb eleg bcf lcd_clk -t irni... Kesobb ha ez atkerul egy masik portra vagy labra, akkor a definiciot megvaltoztatod de a programod marad valtozatlan... konyebb is igy karban tartani a programodat!
Hali!
A Brenner8 USB-s égetőmet még nem tudtam megvizsgálni, de jött egy ötletem az LPT portos Oshon-nal kapcsolatban. Ennek ugye kell külső táp, de azt én inkább a gép USB portjáról szeretném biztosítani. Találtam is egy ilyet. IC van nekem, szóval ezzel nem lehet gond. Szerintetek ez használható lenne?
Ha van IC-d, akkor használható, a 12V elég szokott lenni az égetéshez. Ha ellátogatsz watt oldalára, ott is találsz többféle megoldást is ugyanerre.
Köszi a gyors válasz!
Igen, néztem az oldalát, de az ott lévőhöz úgy tudom, hogy sokkal több alkatrész kell. Meg olyan IC-m nincs... Még egy kérdés ezzel a kiegészítő Step-Up-pal kapcsolatban: Az Oshonban ugye a Vpp-re 13.5V van kapcsolva. Mivel 13V nem lesz ott még, így akkor gondolom csak 5V jöhet szóba, és azt kell kapcsoltatni a tranyóval ennek az IC-nek a "SHDN" lábára. Jól gondolom? Idézet: „Az hogy egy bitre utalok a nevével, ez mindig érvényes?” Amennyiben a megfelő nevet használod igen! Az inc fájlban meg kell nézni milyen neveket fogad el. Egyébként PORTA,RA0 ha jól emlékszem... A másik amit bbalazs írt! definiáld a kivezetéseket a saját nevüket adva címkének, és arra hivvatkozva csak annyit kell írni a programban, hogy a példánál maradjak: BCF lcd_clk És máris Low szintű lesz az LCD órajelvezetéke, ami a PORTA 5. bitjére van kötve....
Inkább úgy csináld, hogy ez az átalakító folyamatosan állítsa elő a 12V-ot, és ezt a 12V-ot kösd az oshon égetőben arra a pontokra, ahol ott a 13,2V jelzés található. Egyébként ha nem lenne elég a 12V, akkor köss be 1-2 diódát a katódjukkal a Vout láb felé a MAX732-nél, ezzel megemeled a kimeneti feszültséget.
Helló watt és trudnai.
Köszönöm a segítségeteket. Eddig én az egyszerübb programok elemzésével és az itt olvasottak alapján gondolkodtam. Most már ezeket is tudom. A korábban feltett 877-e a/d program is csak arra kellett hogy megnézzem, és kipróbáljam, hogy hogyan kell beállítani a paramétereket. Én így tanulok, erre van lehetőségem. Mégegyszer köszönöm a segítségeteket, egy kicsit megint előrébb jutottam. És ami a lényeg, hogy a valóságban is működik. (még nekem is) Köszönettel.
Na megépítettem az oshon féle párhuzamos-port programozót egy próbapanelen, de nem akar működni. Multiméterrel megnéztem a feszültségeket az ic lábánál, mindegyik pontos (vpp 13,25 v, minden más 5v, amennyiben a programban rákapcsolom a feszt). Az egyetlen gyanús dolog, hogy ha rányomom a data out-ot és a clockot, akkor jön data in jel, pedig azt hittem, a clocktól nem kéne. Ennek gondolom köze lehet a nemműködéshez. Mi okozhatja ezt?
Előre is köszi Idézet: „Mi okozhatja ezt?” Pl. zárlat vagy elkötés.
Üdv!
Ha megnézed a kapcsolást, akkor láthatod, hogy a DATA Out és a DATA In össze van kötve. mivel soros adatátvitel van és ezen bellül kétirányú a kommunikáció. Tehát ez igy tökéletesen jó. Az hogy miért nem működik, azt nem tudom... lehet a BIOS-ban engedélyezni kell a kétirányú kapcsolatot a párhuzamos portra... de lehet, hogy valamit elkötöttél.... nézd át hogy nincs e valami hiba.
Ok, világos! Így fogok tenni.
Köszi szépen!
Hali!
Szóppal megvizsgáltuk a kitöltési tényezőt. Ez kb 25%, amikor csak egyszerűen rádugom az égetőt az USB-re. Ha bekapcsolom a Vpp-t, akkor a fesz leesik, de a kitöltési tényező marad 25%. Ha az US-Burn-ben módosítom a kimeneti feszt, akkor felmegy kb 50%-ra (beállítás közben be van kapcsolva a Vpp), ha kikapcsolom, akkor a fesz felmegy 14-15V-ig, de vissza is áll 12V-ra. Ilyenkor visszaesik 25%-ra. Ha újból bekapcsolom a Vpp-t, akkor lesik a fesz, de marad 25%.
Csak azt nem értem, hogy ha vdd és vpp nincs rajta, a clock és a data out miért hoz létre data in jelet. Vagy ez normális?
Most szerintem újra összerakom az áramkört 0-ról, bár már annyiszor átnéztem, hogy nem hinném, hogy hiba van benne.
Sziasztok!
Kérdezném nincs e valami linketek ahol az RS232 működése részletesen le van írva? Egy GSM modulba szeretnék adatot (AT command / ASCII) küldeni (csak küldeni). De ezt a soros dolgot nem értem egyelőre, az egyértelmű hogy a modul RX bemenetére kell küldenem az adatot a TX ről, az órajelet a PIC adná, de hogy hogyan állítom be pl a kapcsolat sebességét, meg hogyan vezéreljem az LE bemenetet, paritás bit...stb. Nem igazán értem, ehhez kéne valami irodalom. Topi cikkét olvastam de ott részleteiben nincs leírva a működés csak a különböző szabványokat taglalja. Köszi
Az, hogy a paritásbitet, sebességet hogy állítod be, azt a pic adatlapjában kell megnézned. A modul egy adott sebességen várja/küldi az adatokat, a pic-nek kell hozzá alkalmazkodnia.
Az LE az gondolom valami Latch Enable akar lenni, azt a programodból kell vezérelned. Hogy mikor hová kell állítani, azt pedig a modul dokumentációjából kell kikeresned. Egyébként pl. itt van egy leírás, de a kérdésed alapján neked nem ez kell: Link
Töltsd le a Microchip-től az AN774 segédletet, ez a doksi elég jó áttekintést ad a PIC-ek USART moduljáról, az adott IC adatlapjával együtt szerintem minden "fehér folt" lefedhető.
Az LE funkciója valószínűleg a modulba történő adatbevitel engedélyezése (meg kell nézni a modul adatlapját), és vagy a küldés kezdete előtt kell megfelelő (vételi) szintbe állítani, vagy küldés után billenteni rajta egyet, én látatlanban az elsőre tippelek. Átvitel közben biztosan nem kell macerálni, ha mégis, az csakis azért cumi, mert meg kell írni a küldő rutint, a PIC moduljának használata helyett; erre az AN555-ös segédletben találhatsz egy példát is.
Köszönöm a válaszokat, nekifutok hátha nem vérzek el rajta ( ) . Az LE az "load enable" de hogy mennyi időre kell átbillenteni...? Átrágom az modul adatlapját...
Így látatlanban azt mondanám, hogy a LE azért kell, hogy amikor az szintet vált (mondjuk felfelé), akkor a modul törli a bemenő pufferét, és azután ahogy érkezik az adat, tölti fel a puffert. Amikor az adatnak vége, akkor az LE szintet vált lefele, aminek hatására a modul tudja, hogy nincs több adat, ami bejött, azzal kell valamit csinálnia.
Idézet: „Egyébként ha nem lenne elég a 12V, akkor köss be 1-2 diódát a katódjukkal a Vout láb felé a MAX732-nél, ezzel megemeled a kimeneti feszültséget.” Lehet, hogy nagyon értetlen vagyok, de az anódot hova kössem? Ugye ne a kimenetre?
Nincs olyan PIC, aminek nem elég a 12V, legalább is én még nem találkoztam olyannal!
Akkor nem bonyolítom.
Tényleg, mekkora áram kell a Vpp-hez égetéskor? Mert ez a kapcsolás így kb 120-150mA-t tud leadni, amiből egy keveset, de azért elvisz a LED. |
Bejelentkezés
Hirdetés |