Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Idézet: Konfigurációs biteknél be kell állítani, hogy melyik porton lehessen debug-olni! Ha jól emlékszem, három csatlakoztatási/beállítási lehetőség van. „Vettem egy PIC24HJ128GP502-t, és az a problémám, hogy a PICKIT2 nem akarja debuggolni.”
Másfél sorral alatta ott van, hogy jó helyre van beállítva
Köszi.
Most morfondírozok hogy hogy legyen, mert kell két speckó karakter is a CGRAMba. Valószínűleg a nagybetűkből nem lesz benne mindegyik. Amúgy csak a fordítóval lesz a baj, mert mi az hogy egy fordító nem bírkózik meg alapból egy UTF-8 forrásfájllal 2011-ben. Windowson még megértem hogy szokatlan neki az UTF-8 na de Linuxon. Idézet: Mit csináljon vele "megbirkózás" címén? Az Unicode nem egybájtos kódokat használ, az UTF-8 esetében pedig nem mindegyik karakter egybájtos. Az LCD pedig egybájtos kódokat fogad. „Amúgy csak a fordítóval lesz a baj, mert mi az hogy egy fordító nem bírkózik meg alapból egy UTF-8 forrásfájllal 2011-ben.” Idézet: „Most morfondírozok hogy hogy legyen, mert kell két speckó karakter is a CGRAMba. Valószínűleg a nagybetűkből nem lesz benne mindegyik.” Bővebben: Link
Ha jól van beállítva, akkor működnie kell! Most csak dsPIC33FJ128GP802 volt kéznél, azon próbáltam ki a PIC-kwik projekt kísérleti áramkörön (2. ábra). Az egyszerűség kedvéért a tápegységet elhagytam, a PICkit2 adta a tápfeszültséget.
A PIC24 támogatói programkönyvtár letölthető mintaprogramjai közül a chap08/ledflash.c-t választottam. A projektből ki kell venni a linker állományt, beállítottam a mikrovezérlő típusát, és az MPLAB-ban a DEBUG módú fordítást végeztem. Utána Debuggernek megadtam a PICkit2-őt, a Program menüpontban letöltöttem a programot. Töréspont(ok) elhelyezése után (pl a LED1 = !LED1; sorhoz) lehetett lépkedni, s meg lehetett jeleníteni a regiszterek tartalmát. (PORTB, LATB, TRISB, OCDB)
Üdv mindenkinek!
Lenne egy első körben elméleti kérdésem, utána persze a megvalósítása is érdekelne. Nem régóta pic-ezem, de most egy PC-PIC kommunikációt kellene megvalósítanom, ami annyit jelent, hogy 1-1 karakter tömböt kellene oda-vissza A PIC-en (jelenleg 16F877A) tehát fut egy program, ami egy bizonyos pontban elindítja a kommunikációt, és küld egy char tömböt a PC fele. A PC-n pedig egy c++ nyelven írt program fut, ami erre a char tömbre vár, majd ha megkapja visszaküld egy másik szöveget a PIC-nek, ami azt értelmezi és eszerint fut tovább a program... A lényeg tehát, hogy teljesen automatikusan működjön a kommunikáció. Érdekelne, hogy ezt ki, hogyan oldaná meg, milyen kommunikációs csatornát választana. Tudom van a neten elég sok PIC-PC kommunikációs leírás, de direktben eddig ilyet, ami nekem kell még nem találtam, és egyébként is jó lenne leszűkíteni, hogy merre is keresgéljek. (A PIC-et C nyelven programozom.) Minden segítséget szívesen fogadok!
Ha megmondod milyen portok vannak a PC-n és a C++-ban milyen portot tudsz leprogramozni, akkor egyszerűbb lenne a szűkítés. A sebesség is döntési fontosságú kérdés.
Hát a PC-n soros port (RS232), és USB van. USB jó lenne, mivel mégis csak modernebb technika, de amit eddig olvasgattam róla.. Hát elég macerás...
Egyébként eddig semmi ilyesmi jellegű problémával nem foglalkoztam, így jelenleg nem sok mindent tudnék leprogramozni C++-ban sem. Épp ezért kellene egy kis útmutatás, hogy merre is induljak el. Számomra az átviteli sebesség nem kulcsfontosságú, mivel elég ritkán kerül sor adatátvitelre, akkor is csak 1-1 karakter tömb erejéig. Inkább az egyszerűség lenne a fő irányvonal. Persze, ha egyáltalán egyszerűen meg lehet oldani.. Idézet: Soros port szintillesztővel (lásd pl. PICDEM 2 Plus), vagy USB-UART átalakító TTL kimenettel. „A PIC-en (jelenleg 16F877A)”
Helló. Ennek a kapcsolásnak az OUT-ját kötöm egy PIC-re, kell oda lehuzóellenállás, vagy csak simán az OUT-ot a PIC-re elég rákötni?
El tudod dönteni melyiket akarod az USB és a COM közül?
A leírásod alapján mindkettő megfelel. Az USB-hez keress rá a HID-es cikkemre. Soros port pedig egyszerű mint a pofon, főleg ha a 877A-t akarod használni(Feltéve, ha a PC részt meg tudod írni, de ez nem PIC téma ezt beláthatod.).
Elvileg elég, ha 5V a tápja. Esetleg tegyél egy 100ohm-os ellenállást a bemenet elé még védelemnek.
Szerintem a legegyszerűbb, ha valamilyen USB/UART átalakítót használsz, pl ezt: http://www.hestore.hu/prod_10024736.html
PIC oldalon egyszerű UART kommunikáció, nem kell szintillesztésekkel vacakolni. Sőt, optocsatolókkal illesztve a PC és a PIC külön áramkörön lesznek, ami néha jól jön. A PC-s driver feltelepítése után PC-oldalon van egy soros portod, amit C++-ból minden gond nélkül tudsz kezelni. Nem nehéz, tele a net példákkal.
De ha már raktam elhuzóellenállást, az baj?
Idézet: „...valamilyen USB/UART átalakítót használsz, pl ezt: Bővebben: Link” Ez sem rossz, csak nagyon drága. Az E-bay kínálatában 3 USD körüli áron kapható CA-42 kábel is megteszi, de olyan kábel is kapható, ami a TX/RX jel mellett az 5 V-os tápfeszültséget is hozza az USB csatlakozóból.
Szia!
Ha PICKit2 -vel fejleszted a pic -es programodat, akkor még USB-serial átalakító sem kell. PICkit2 mint USB-COM átalakító Bővebben a beállításáról
Egyenlőre akkor az UART kommunikáció mellett maradok, és elmélyedek ebben. Ha valami fejlemény lesz, majd jelentkezem.
Köszönöm szépen a válaszokat!
Keress rá itt a topicban, ha jól emlékszem vannak kész mintapéldák, talán még 877-re is, de 628A-ra biztosan.
Ott van sorba az ellenállás, de én tettem egy lehuzóelenállást is. Aaz baj?
Mondom, rajz nélkül nem értelek. Hová tetted a lehúzót, mekkorát stb... De ez kezd off lenni, úgyhogy tedd fel gyorsan a rajzot, aztán legyünk túl rajta!
Kösz a linket, elraktam.
Ez a megoldás jó, amíg fejleszt. Node a "végtermékbe" ?
Komolyan bocs, lemaradt a rajz, pedig az előzőben fel akartam tenni....
Lehuzó 10K, soros 470R
A lehúzó ellenállás egy osztót képez az R3-al. Ez nem biztos, hogy neked jó. Ha az értéket is beírtad volna, azt is meg lehetne mondani, milyen feszültségek lennének ott. Szerintem vedd ki és kész...
Sziasztok!
Megépítettem az alábbi PIC-es órát, működik is szépen, egy pici hibával, 1óra alatt siet 1mp-et hogyan tudom kompenzálni? Gondolom a két kerámia kondival kéne valamit varázsolni, de mit? E.
Inkább más lehet. A kondik a berezgéshez kellenek, alapvetően a program és a kvarc pontossága határozza meg. Persze megpróbálhatod, hogy félrehúzod egy kicsit úgy, hogy az egyik kondi helyére beteszel egy 3...33pF-os trimmert.
Szia!
Köszönöm a gyors választ! Megpróbálom, ha nem megy mit tegyek? Létezik, hogy kifogtam egy kvarcot, ami nem jó? Ezt nem hinném... akkor a programmal lesz a baj (a Te óráid közül már egy csomót megépítettem és ez a kvarc is abból a vásárlásból való, azok meg jó pár hónapja atompontosan járnak )
Azon gondolkodtam hogy PIC16F627 re lehetne e egy nagyon alap TCP/IP stack-et. Azt szeretném csinálni hogy interneten keresztül szeretnék bekapcsolni egy gépet (WoL több okból kizárva) és amikor az bekapcsolt akkor azt jelzi pl így nézne ki a folyamat:
1. ip-cím beírása böngészőbe 2. weblap (semmi dizájn) írja hogy "Várj" 3. amikor a gép betölt azt jelzi valahogy a pic-nek (mind1hogy) 4. weblap frissül "ok" ra... a gép automatikusan indítana egy SSH-t amivel már letudom állítani. A sebesség nem lényeges. Elméletileg működnie kellene, bár nem tudom hogy a 4MHz képes lenne e ellátni a dolgot, továbbá nem láttam még Assembly ben írott TCP/IP stack et... És még egy utolsó kicsit bohókás kérdés. Elképzelhető e az hogy ha gépi kóddal programozom akkor valamennyivel többet tudok kihozni a PIC ből? Válaszokat előre köszönöm. |
Bejelentkezés
Hirdetés |