Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Egyetertek, bar igazandibol en azt utalom, hogy ezt makrokent definialtak es nem utasitaskent Most oszinten, mennyibe kerult volna nekik az MPASM compiler nyelvtanaba ezt utasitaskent definialni?
Ez a legjobb szerintem!
PIC MultiCalc
Köszönöm, ISTENEK VAGYTOK!
Az esti imámban már szerepelni fogtok!
Utána néztem egy kicsit mivel én is megtaláltam ezt a rajzot és megakartam csinálni. Mindenkinek mondom ez a VT7003 tipusú Ic kizárólag csak az Urbán elektronikában lehet kapni és csak szerelve vagy egységcsomagba. Ez a saját fejlesztésük és sehol máshol nem kapható. Szóval így áljatók neki.
Akkor ez az égető egz Urbán legenda...
Halkan javasolnam, hogy inkabb watt vagy szilva fele PicKit2 klonokkal kiserletezzetek.
Pickit2 vel programozom, abban nem találtam ilyet.
Én meg nem kapcsoltam be. Belsö OSC-vel sem megy 3V-on. Ha esetleg be van akkor azért nem megy ?
Talán ha a configurációs bitek között keresnéd a programodban, akkor meglelnéd. Az adatlapban is a config részeknél fogod megtalálni a részletes infókat.
Idézet: „Pickit2 vel programozom, abban nem találtam ilyet. Én meg nem kapcsoltam be. Belsö OSC-vel sem megy 3V-on. Ha esetleg be van akkor azért nem megy ?” Igy van a BOR az a Brown Out Reset, arra valo, hogy ha egy bizonyos fesz ala esik a Vdd, akkor resetalja a PIC-et ezzel meggatolva az aramkor hibas mukodeset - ugye a PIC mukodik eleg alacsony feszrol is mar, de nem biztros, hogy az aramkor tobbi resze ugyanezt teszi. Most sajnos nincs itt a PicKit2-m, igy megnezni nem tudom, de ugy emlekszem, hogy a configot a PicKit2 szoftvereben csak hexaban lehet allitani - ha lehet egyaltalan? Majd megnezem otthon, mindenesetre MPLAB-bol is lehetne eppenseggel hasznalni a PicKit2-t programozasra es az tudja a config biteket szep grafikus csicsamicsan keresztul allitani, azonban en is azt javasolnam amit watt irt...
Sziasztok!
Segítséget szeretnék kérni! Nekiláttam elkészíteni a soros kommunikációt a pc-vel. Mellékeltem a kapcsolást, amit használok. (a 16F877 demópanel mintájára) Pic18F4520-assal dolgozom, ami 20Mhz-en megy és c-ben fejlesztem mcc18-al. Mellékeltem egy kis kódot is, amit írtam, de nem igazán működik jól. Furcsa módon, ha nyitok egy terminalt és debugban vagyok, akkor a terminalban írt karakterek megjelennek a pic kijelzőjén, de ha release módban vagyok, akkor nem csinál semmit. Elvileg 9600-ra állítottam a baudot mindenhol. (az openusart-nál ez a 129-es érték, igaz?) Mi lehet a baj? Valami időzítési gond? Írni is próbáltam, de a terminálon nem jelent meg semmi. Tudnátok kicsit segíteni? Köszönöm! Zoli
Jól van beállítva a 9600-hoz az Open.
Viszont ha a rajz szerint építetted az áramkört, akkor a 2-es lábon lévő kondi nem jó helyre megy, mert annak a testre kell mennie, nem a Vcc-re. Első körben nézd meg ezt, mert a programban nem nagyon látok hibát. Illetve van valami. Említed, hogy a kivitel nem megy, ha jól értettem. Azért nem, mert nem várod meg, míg kiért a bájt a putchUSART után. Ide is tegyél egy while(BusyUsart());-ot, mert ha nincs ott, a CloseUSART már akkor lezárja a portot, mielőtt a teljes bájt kiérne!
Jól emlékszel, hexában jelenítik meg. Nem is értem miért. Vannak fura dolgai microchip-nek...
Szívesen megnézem, de a Maxim max232-es datasheet-jében volt így, hogy a 2-es lábat így köti...
Az nem okozhat gondot, valahol a szövegben el is van talán rejtve a MAX232 adatlapjában, hogy az a kondi a tápra és a földre is csatlakoztatható.
Okés, akkor ezt lépjük, viszont közben szerkesztettem az előzőt, olvasd el...
Egyébként megnéztem ,az én adatlapomban meg a testre van kötve. De akkor vegyük úgy, hogy ez nem okozhat gondot(remélem!)
Nezd vegig esetleg a kulonbsegeket release es debug modok kozott a config kornyeken mik vannak beallitva.
Lehet, hogy nem igazi debugra gondolt, csak szimulációra. ?
Csak tipp: ellenőrizni kéne a terminálnál a flow control beállítását, ne legyen semmiféle handshaking a számítógép oldalán (nem is biztos, hogy a PIC ront valamit). A printString hívás után pedig talán lehetne egy rövid várakozó ciklus, hátha segít valamit.
Rendes Debugra gondoltam!
A késleltetést a ciklus végén már próbáltam, sajnos nem segített. A terminal beállítása elvileg jó, azon már többször átrágtam magam... Viszont az is érdekes számomra, hogy pl ha küldök valamit a pic-ről, akkor ha működik a pc-n a vétel, akkor nem történik semmi, viszont, ha nem, akkor a pic lcd-jén jelenik meg a karakter... Biztos valami banális hülyeséget csinálok, csak nem tudom mit. :S
Pazar Az skpdc -ről eddig még nem tudtam!
Ez nem valós parancs, mint korábban már említettük. Lehet készíteni makrókkal teljesen más nyelveknek megfelelő utasításokat, és még működni is fog, csak nem fogja érteni senki.
Azt a következtetést vontam le, hogy hiába rosszabb, vagy nehezebb kezelni egy gyári fejlesztést, nem érdemes külön utakra térni, mert a vége az lesz, hogy alig akad valaki aki tudna segíteni, és még az is előfordulhat, hogy magunk is belebotlunk egy olyan hibába, amit soha nem tudunk kibogozni. Én ezen már átmentem(nem PIC esetében, de jó tanulópénz volt), ezért azt ajánlom, hogy az adatlapokban megtalálható valós PIC utasításokat használjuk, és ha esetleg C-ben is akarunk programozni, akkor az legyen a gyári C18! Hosszú távon nagyon megéri...
Valami hasonlót tapasztaltam én is. Amikor a C18-al elkezdtem foglalkozni, akkor először zavart, hogy azt kell írni INTCONbits.GIE=1, mert a Hi-Tech fordítójában elég volt csak azt írni, hogy GIE=1. Ezért gondoltam egyet, hogy egy .h fájlba kigyűjtöm az összes bitet. Csakhogy azt nem írhattam, hogy #define GIE INTCONbits.GIE, mert rögtön összeakadt a gyári kódokkal, egyszóval nem lehetett mixelni a két módszert. Mindegyik elé odaírhattam volna egy aláhúzásjelet (_GIE, _TMR0ON, stb.), de ez sem túl praktikus és esztétikus. Ezért inkább megszoktam a gyári megoldást és kész. Mostmár jól elvagyok vele, és más is meg tudja érteni a kódot.
Nemértem ezt a nyomorult quartzot. Próbáltam már 10p, 22p, 68p csak akkor rezeg be ha közelitek a kezemmel a panelhez. Mi a nyavaját csináljak ezzel ?! Ez ilyen 8MHz alacsony kivitelű tokban van. normál méretű 4MHz essel nem volt gondom, meg a rezonátorral se.
Néha azt szokták csinálni, hogy nem egyforma kondit tesznek rá. Egyik oldalra 22pF-et, másik oldalra 15pF-et. Sőt, olyat is lehet, hogy a kvarccal párhuzamosan kötsz egy 1 Mohm-os ellenállást. Hátha bejön.
A pic-ben HS oszcillátor van beállítva a konfig biteknél?
próbáltam HS is meg XT is. Holnap megnézem felemással. Adatlapon szerepel még soros ellenállás is, az mekkora lehet ?
Sziasztok!
A segítségeteket kérném. Szoftveres soros portot szeretnék csinálni INT0 megszakítás segítségével RB0 lábon. A dolog tökéletesen működig 1 bájt fogadásáig. Lefutó élre indul majd késleltetésekel olvassa RB0 portot és minden olvasás után beforgatom a sajat regiszterem megfelelő bitjét. Majd ezek után minden vissza áll alap helyzetbe és ugye a következő bájt érkezésénél ennek újból le kéne futnia, de nem! Tehát a gondom,hogy csak egyszer működik az INT0 interrupt! Ötlet, hogy mitől lehet? A flag törlés meg van! bcf INTCON,INT0IF ;INT0 megszakitasi flag torlese
Egy jó kvarc nem csinál ilyeneket! Sajnos azt kell gondolnom, hogy másik típust kell használnod. Nekem eddig soha nem volt olyan, hogy nem indult volna el, és ne lett volna stabil egy PIC-re kötött kristály. Mindig 22pF-et használok, 4-től 20MHz-ig HS módban mindig.
Létezik olyan kristály is, ami nem az alapharmonikusán rezeg, de ilyeneket inkább kerülöm, mert nem ismerem eléggé a működésüket. Lehet, hogy Te is ilyenbe botlottál. Nézz utána milyen a kvacod. Van hozzá valami adatlapod? |
Bejelentkezés
Hirdetés |