Fórum témák
» Több friss téma |
Fórum
A SetTimer02s miatt kerüli ki a varakozó ciklust ha nincs benn a kártya és lejárt a timer. Ha benn van akkor nincs gond. Ha kiveszem a timert, akkor benn marad ebben a ciklusban és nem kezeli az UART megszakítást... ![]() Igazából azt nem értem, hogy az UART szempontjából semmi nem változik és mégsem kezeli. Kipróbáltam a TIMER0-t polling helyett megszakítással és az rendben van... de így pollingal egyszerűbbnek látom... A fura a dologban, hogy átraktam az egészet 18F4580-ra és ott hibátlan... Ha van SD kártya, ha nincs a megszakítást akkor is kezeli, kivétel nélkül.
Üdv,
Ebben a loopban vár bármilyen megszakításra. UART1 és UART2 megszakítás esetén kezeli a bejövő charaktereket és törli a flaget... ahogy kell. Aztán meghívom az SD inicializáló részt akkor eddig egy szintén végtelen ciklusban várt SD R1 válaszára. Mivel nem volt bent az SD ez ugye sose jött meg, de ennek ellenére ki kellett volna lépjen kezelni az UART-okat, de nem tette. Szóval itt tűnt el az UART megszakításra való reagálás. Ha berakom az SD-t, mármint a kártyát magát, akkor inicializál, visszamegy a fenti loopra és utána minden normálisan működik.
Biztos mindegyikőtöknek megvan a Kónya féle PIC programozós könyv régebbi kiadása, az a fekete borítós... A tippek trükkök résznél van pár minta a 8 és 16 bites változók hasonlítására. Na eddig én ezeket sikerrel használtam, viszont a minap egy érdekes dolog történt:
Az alábbi kódrészlet a könyv 213. oldalán a RAM > x résznél található:
Szóval ugrik ha a RAM > X Ha X mindig 0 és a RAM értékét növelem 1-el, akkor PIC18F4580 esetében teszi is a dolgát egészen 0xFE10 értékig, utána viszont úgy ítéli meg, hogy az X > RAM....természetesen hibás működést okozva például egy LoadCell mérés esetében. Az okra eddig nem jöttem rá, nem volt időm foglalkozni vele. A problémát persze megoldattam egy másik hasonlítási eljárással. Más is találkozott már ezzel? Üdv TheSaint
Üdv,
Ok, szóval pakolásztam a dolgokat ide oda, nem sok minden változott. A LED-es trükköt én is használom, bár nálam egy kijelzó is rá van akasztva, hogy néha többet láthassak egy blinknél. A végeredmény az lett, hogy újraírtam egy részt az SD kártya kezelésben. Ha nem volt bent az SD akkor egy végtelen ciklusba került a program, amiből az UART megszakítás ki kellene léptesse... Ezért megszakítás a megszakítás, de sajnos ez nem teszi. Az érdekesség az az, hogy ha nincs dolga a CPUnak akkor is egy LOOP..NOP..GOTO LOOP ciklusban kering és abból simán kilép és kezeli az UART-ot. Egyenlőre a két UART-on kívül meg nincs másik megszakítás benne. Az újraírás alapvetően a problémát nem oldotta meg, hanem csak megkerülte. 2mp után így vagy úgy de kiléptetem a SD-re várakozásból. Sajnos még mindig nem értem hogy miért tűnik el az UART megszakítás ebben az esetben. Szóval ez a rész még ötleteket vár De találtam egy másik problémát..lásd köv. hozzászólás...
Üdv!
A segítségétekre lenne szükségem. Egy PIC18F46K22-vel küzdök egy ideje. Mind a két UART működik megszakításos bejövö adatkezeléssel hibátlanul. A következő lépés egy SD kártya interface lenne, amit be kellene illesztenem a programba. Az SD kártya kezelő részt 18F4580-on írtam először, ahol tökéletesen működött. Copy + Paste és a szükséges SFR-ek névmódosítása után az UART megszakítás megszűnik működni. A bejövő karakterek nem okoznak megszakítást. Eddig sikerült kinyomoznom, hogy a következő programrész részleges kikommentezése megoldja a megszakítás problémát, persze ettől meg az SD kártya nem működik.... Ha ez így van benn akkor nincs UART interrupt:
Ha így, akkor működik az UART interrupt:
Ha jól tippelek a kettőnek nem nagyon van köze egymáshoz. A fenti programrészlet még nem része a futó programnak, vagyis az SD kezelést még nem hívom meg sehol... Jó volna valami ötlet, mert kicsit tanácstalan lettem.... Köszi előre is! Üdv The_Saint A hozzászólás módosítva: Nov 9, 2015
Szia!
Bocs, nem C-ben programozok, asm-ben, csak a képkonverter program így adja ki a végeredményt és bemásoltam az egész blokkot elsőre. Aztán láttam, hogy túl hosszú és kivágtam nagyjából a 99%át és így maradt az eleje meg a vége ![]() Még arra emléxem, hogy anno 16F876A-ra írtam valamit, mikor is egy 128x64 pontos kijelzőre kellett kiküldeni a képet....hát valami ilyesmi a helyzet most is. Üdv
Sziasztok!
Tudom, hogy már ebben egyszer valamikor régen segítettek, és én annyira meg akartam találni, de 60 oldal végigböngészése után feladtam. Íme: PIC16F628-assal szeretném a következőket: van egy halom adatom ilyen formában:
Ezeket szeretném egyenként a PORTB-re küldeni. Persze NEM így:
Sajnos a TBLRD itt nem működik ![]() Köszi előre is ! Üdv TheSaint
Szia,
Na ez már egy gyakorlati példa. Ez úgy nézne ki, hogy valami kommunikációs csatornán (soros, wifi, bluetooth) beküldöm az új progit távolról és a bootloader meg beírja a régi progi helyére. Jól értem? proba: EEPROM helyett én is használtam már, de más nem jutott eszembe eddig
Sziasztok,
ha jól tudom, akkor a PIC18Fxxxxx-ek át tudják írni a saját program memóriájukat. Tudnátok mondni példákat...legalább egyet...ennek a gyakorlati hasznára. Hol és mire lehet ezt a tulajdonságot használni? Köszi! Üdv TheSaint
Hát... mindig Te vagy a megmentő
Ott a pont. A bankváltás hiányzott. Már megy is!! Hiába, aki tud az tud!!!
OK, értem. arra gondoltam, hogy valakinek esetleg van egy kész configja... De íme itt van amit én raktam össze:
Nincs benn semmi extra. Minden port minden lábát digitálisként akarom használni. Az RB0, RB1, RA0, RA1, RA2 lennének a digitális bemenetek. Ja és a CONFIG rész:
A gond az az, hogy korábban ugyanez az áramkör 18F4580-nal tökéletesen működött, de most éppen nem volt a boltban ilyen, csak 18F46K80, ami lábkompatibilis, csak a progit nem eszi meg módosítás nélkül. Már majdnem megvagyok az átírással, csak 3db nyomógombot nem bírok beolvasni... További szép estét!
Sziasztok!
Megint kell egy kis segítség. Valószínűleg már nem látom a fától az erdőt.... Egy PIC18F46K80-assal van gondom. Az RB0-t és az RB1-et akarom digitális bemenetnek használni...de Ő annyira nem akarja. Elvileg bállítottam mindent regisztert aminek köze van 2 lábhoz.... de nem és nem bírom kiolvasni a láb állapotát. Lécci valaki szóljon valami okosat! Köszi előre is. Ez eddig tényleg tetszik! Nem akarok telhetetlen lenni, de mi van ha csak úgy van internet, hogy ha mobilomon bekapcsolom az AP-t.... nem tudok vezetéket húzni (se koax, se telefon) Ha jól sejtem akkor ott hagyom a mobilomat örökbe? Vagyis legalább addig amíg akarom hogy menjenek az adatok...Amúgy közben nem tétlenkedtem, levizsgáztam villanyszerelésből meg találtam egy ilyet, lehet, hogy többeteknek tetszene:RN370 bár a kérdés még mindig fennáll: mi van ha nincs AP közelben? Szép estét!
Szia! Hát igen, egy file az egész, aztán majd egy másik PHP szétválogatja. De hogy kerül a PIC soros kimenetről egy másik országban lévő szerverre, bele abba bizonyos file-ba?
Sziasztok!
Előre is bocs, ha rossz helyre írok, de a kérdésemben PIC is szerepel ![]() Szóval adott egy PIC ami sorosan kiküld egy számot. Ezt a számot kellene egy egyre bővülő listában tárolni. A lista egy webszerveren van... messze a PIC-től. Van erre valakinek elképzelése, hogy hogyan kell ilyet csinálni? Vagy AP vagy mobilnet lehetőség van.... Bármi érdekel amit tudtok mondani! Üdv TheSaint
Szia, igen van a DO-n egy 10k-s, bár korábban 4.7k-s volt, de már nem is emléxem pontosan, hogy miért is cseréltem le 10k-ra....
Üdv!
Szeretném újfent a segítségeteket kérni. SD kártyára akarok adatot menteni PIC18F458, vagy bármi hasonlóval. Pár mintát már ki is próbáltam, FAT-tal meg anélkül is, de valahogy egyik sem akar működni. Ha valakinek lenne működő "include"-olható .asm forráskódja, vagy valami komplett tutorial féle, azt nagyon megköszönném. További szép napot! Üdv The_Saint
Szia! Hát még1x köszi
![]() A TBLRD használatával megoldódott minden propléma, legalábbis eddig. Nem is értem, hogy hogyan, de az EEPROM olvasás is.... További szép napot!
Szia, nem hiszem, max 5-6 mélységben járhatok. Messze van még a 31, erre figyeltem. Mind1, most elvagyok egy darabig a menu rendszerrel.... ha majd nem megy, akkor még jelenkzem! Köszi és további szép napot!
Köszi, ez már kezd jó lenni. Lassan annyi sörrel jövök Neked, hogy nem tudjuk leinni egy ültő helyünkben
![]() De sajnos még van egy kérdésem: van a program emória elején az a subrutin, ami kiküld egy karaktert vagy instrukciót az LCD-re. Ha ezt "távolabbról" hívom, akkor összekeveredik progi és elkezd mátrix kódot kíírni. A "távolabb" az azt jelenti, hogy pl a program memória közepén van egy call, szóval jó nagyot kell ugrania. Egyszer már megoldottuk ezt a problémát, de az 16F-en volt. Úgy tűnik mintha a 18F-nél máshogy működne... kérdés hogy hogyan?
Igen, tudom. A TBLRD nem eeprom olvasásra való.
![]() Viszont amire való azt nem tudom, hogyan töltsem fel adattal egyszer és mindenkorra...
Igen, az írás rendben és végül ki is olvassa, de mikor megkapja a tápfeszt akkor az első írásig nem olvas, csak utána...
De már próbáltam azt is írok egy kamu adatot a 0xFF-re indulás után....de sajnos ekkor sem olvassa ki azt ami nekem kellene. Viszont ha ugyanarra a helyre írok akkor ír is és utána olvas is szépen bármikor!
hmm...hát úgy néz ki, hogy nálam van. Eddig arra gyanakodtam, hogy egy-egy szubrutin túl messze van a hívástól a program memóriában, de most már 20 sorral arrébre sem tud úgy ugrani, hogy össze ne zavarodna...valamit csak nem csinálok jól. Pl, sajnos fogalmam sincs, hogy a BRA mit is tud csinálni valójában....
A másik kérdés, hogy a TBLRD-t értem, hogy mire való, de a kérdésem, hogy hogyan töltöm fel az adatokat, mert minden egyes fordítás az MPLAB-ban kitörli a beírt dolgokat. Tudom, most mindenkinek az a kérdése, hogy minek programozok 18F-et, ha ennyire nehezen megy, de fejlődni muszáj, így meg lehet tanulni.. ![]() Válaszaitokat előre is köszi! Üdv TheSaint
Hát...meg van más bajom is.... most, hogy nő a program hossza, az ide oda ugráokat is rendbe kéne tenni.... de nem tudom, hogy kell. Ebben is kérném a segítségeteket! Köszi!
Üdv TheSaint
Üdv!
ismét csak bajom van azzal a PIC18F458-al. Íme: A programja szerint egy funkcióbeállítást elmentenék eepromba, hogy kikapcs esetén is megőrizze a kívánt beállítást. Tulképp egyetlen bájtról van szó. Az írás tökéletesen működik. A visszaolvasás viszont eléggé hektikus. Bekapcsolás után nem olvassa az eepromot egészen addig, míg egy újabb írást rá nem küldök, vaaagy PICkit3-mal ki nem olvastatom a tartalmat. Ezután gond nélkül működik minden...írás is és olvasás is. Segítséget illetve magyarázatot kérnék, ha tud valaki, mert már kifutottam az ötletekből.... Előre is köszönöm! Üdv TheSaint
Üdv!
watt és mateakos, köszi a segítséget, probléma megoldva. Naívan azt gondoltam, hogy nem kell olyan alaposan végignyálazzam a leírást ![]() További szép napot! The_Saint
Sziasztok! Egy PIC gurunak a segítségét szeretném kérni! Az alábbi kódot használom egy jó ideje 2x16soros LCD-hez, ami működött is tökéletesen, mindaddíg míg nem váltottam 18F...-es PIC-re.
A display_first_row hívása egy 16F877A-s PICen tökéletes eredményt produkál, a text_table-ból kírja a karaktereket. Ám ha 18F458-on használom, akkor: minden karakter dduupplláánn jelenik meg. Többféle dolgot kipróbáltam, pl. az időzítést nyújtani, de eredményre csak az utolsó előtti sor, az incf count,f duplázása vezetett eredményre. Kérdésem, hogy ez így normális? Ha valaki látja a hibát, kérlek osszátok meg velem! Előre is köszi! Üdv The_Saint
Köszi, megjött a fesz! Kimenet volt az RA2..
Szia! Köszi a gyors választ! 1 dolgot nem értek... miért kell bemenet legyen a láb? Én ott akarnék egy mérhető feszültséget, végső soron egy DAC kellene aminek a feszültsége a RA2-jelenik meg.... De akkor ez nem kimenet? Vagy ezért nem ment nekem eddig, mert eddig kimenetnek volt konfigolva. Na kipróbálom! Köszi még1x!
Üdv |
Bejelentkezés
Hirdetés |



Hiába, aki tud az tud!!!
