Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   213 / 1319
(#) Csaplar válasza watt hozzászólására (») Máj 18, 2008 /
 
Hali!

Eddig is sokat segítettetek, nekem ilyen apró észrevételek is fontosak...
A többi még tényleg a végén dől majd el!

Amúgy jónak tűnik az SD kártya bekötése? Írni és olvasni is akarom...

Köszi!
(#) Csaplar válasza watt hozzászólására (») Máj 18, 2008 /
 
Igyekeztem kijavítani a dolgot!

Belekerült egy 74HCT244-es és egy 74LCX244-es IC!

Az SD kártya írós-olvasós rész így most már jó lehet?

Köszi szépen
(#) watt válasza trudnai hozzászólására (») Máj 18, 2008 /
 
Amit pet csatolt korábban, abban úgy volt. Igazából az eredeti cikk forrását közvetlenül nem láttam...
(#) watt válasza Csaplar hozzászólására (») Máj 18, 2008 /
 
Csatoltam egy részletet az egyik tervemből.

Az általad választott 74LCX244 nem arra való, amire betetted! A Kimenete akkor 5V, ha a tápja is annyi. Ekkor a bemenetén a High szint 3V-nál is nagyobb lehet. Erről az adatlap nem ír, de a 3V-os beállításba 2V-ot jelez, ami erre enged következtetni, valamint arra, hogy nem erre találták ki, hanem pont a fordítottjára, azaz hogy 3V-os kimenete legyen, és 5V-ot tudjon fogadni a bemenetén.

A 74VHCT04A 5V táp esetén is 2V felett High szintet értelmez a bemenetén. Ez kell a kártya felől a PIC bemenete felé, vagy ezzel egyenértékű.
Mellesleg nem túlzás a 244-et ide betenni, kicsit sok a lába?...
(#) foxpaw hozzászólása Máj 18, 2008 /
 
Üdv!

Amit eddig csináltam:
16F876

A/D konverzió, majd a kapott adat kiküldése USARTon keresztül PC soros portjára. 300 Baudra állítottam és működik!!! (Hyperterminalon próbáltam, érkezik az adat mint a kisangyal. Az utolsó két bit nem teljesen biztos, az ingadozik, na de ne legyek telhetetlen.)

Kérdés, bár nem teljesen ide tartozik, de hátha valaki csinált már ilyet: hogyan fogadom 300 baud - al az adatokat LINUX alatt com1-ről? Nézegettem a neten a dolgokat, de kevés konkrétum van... Esetleg "getty"-el, vagy raw blocking módba nyissam meg a com1-et (ttyS0)? A módszer és a nyelv végülis mindegy, csak a 300 baudot kéne megmondani neki alapvetően és a bejövő adatokat kinyerni.

Ilyet találtam.: http://www.easysw.com/~mike/serial/serial.html
(De itt nem látom, hogy állítani baud-ot... )

Köszönöm!

(#) foxpaw válasza foxpaw hozzászólására (») Máj 18, 2008 /
 
Hülye vagyok, elnézést, nem szóltam.
(#) Csaplar válasza watt hozzászólására (») Máj 18, 2008 /
 
Hali!

Ezt egy demó kapcsolásból próbáltam kiszűrni, de nem igazán sikerült ezek szerint...

Igazad van tényleg túl sok lába van 244-esnek...
Nem igazán vagyok járatos alkatrészek terén...

Ha nem túl nagy kérés meg tudnád adni a kapcsolásodon az U3-as és U4-es alkatrészeknevét ? ( Sima 74HC14 ? )

Egyébként az SD kártya olvasásához/írásához nem kell bekötnöm a 10,11,12-es lábakat, ugye? Valamint a CS lábat is elég felhúzni, nem?

Előre is köszi!
(#) watt válasza Csaplar hozzászólására (») Máj 18, 2008 /
 
Mi más lenne az U3,4 mint 74VHCT04A!? Eddig erről beszéltünk nem?

A 12-es láb testen van.

A 10,11 pedig azt érzékeli, hogy a kártya be van e dugva a helyére, illetve, írásvédett e. Döntsd el szükséged van e erre.

A CS-vel kapcsolatban is neked kell döntened. Ha állandóan engedélyezni akarod, akkor lehet, hogy nem kell vezérelned. Nem látom át most, hogy ez jelenthet e gondot esetleg... (pl. nem szerencsés engedélyezve kirángatni.)

(#) Csaplar válasza watt hozzászólására (») Máj 18, 2008 /
 
Bocsánat, ha néha fárasztó vagyok...

Így gondoltad?

sd.JPG
    
(#) herzsolt hozzászólása Máj 18, 2008 /
 
Melyik az a programozás, amit érdemes elsajátítani PIC programozáshoz?
Olyan esetben, ha előtte nem tanulta valaki egyiket sem. Ha C-re szavasztok, akkor a sima C vagy C++-t érdemes-e elsajátítani?
Milyen könyv jó a tanuláshoz?
Bocsi, hogy ilyett kérdezek, de ha valaki most kezdi, annak biztos, hogy jol jönne erre a válaszok.
Igaz, hogy ezt egy másik fórumon is feltettem, de lehet, hogy nem mindenki olvassa azt az oldalt.
(#) Thowra válasza kobold hozzászólására (») Máj 18, 2008 /
 
Üdv!
Megnéztem az oldalt de az asm még nehézségeket okoz.
A kijelző HD44780 kompatibilis.
Egy c s magyarázat jól jönne.
(#) trudnai válasza herzsolt hozzászólására (») Máj 18, 2008 /
 
Idézet:
„Melyik az a programozás, amit érdemes elsajátítani PIC programozáshoz?”


A korrekt es preciz programozast erdemes elsajatitani

De felre teve a trefat, nem a programfejleszto kornyezet vagy programozasi nyelv az amelyiket meg kell tanulni, hanem az architekturat. A mikro kontrollerek NEM processzorok es NEM szamitogepek! Az architekturat velemenyem szerint assembly nyelven es adatlapok olvasgatasaval lehet legjobban elsajatitani, kesobb barmire at lehet terni.

ANSI C az egyik leggyakrabban hasznalt magas szintu nyelv (noha a Kernighenek ugy definialtak a C-t, hogy az alacsony szintu, megis inkabb a magas szintu nyelvekhez szokas manapsag sorolni). C++ mikrokontrollerekre csak mostansag kezdett el bekerulni a koztudatba, itt szerintem senkinek sincs tapasztalata ezzel kapcsolatban - bar meglehet tevedek. C++ -t inkabb a WinCE embedded programozashoz hasznaljak, ha afele akarsz elmenni asd bele magad, de egyenlore ASM es utana max C amit javasolnek.

Topi cikket olvasd el...
(#) vilmosd válasza Thowra hozzászólására (») Máj 18, 2008 /
 
Hali
Ha CCS C-t hasznalsz nezz szet a sajat gepeden a PICC alkonytarban es talalsz peldat a LCD kezelesere . Ha mas PIC-et hasznalsz termeszetesen at kell irnod egy kicsit.
Udv Vili
(#) vilmosd válasza herzsolt hozzászólására (») Máj 18, 2008 /
 
Hali
Udvozlet a PIC-esek taboraban.
Eloszor is olvasd vegig ezt a temat az elejetol ( csak 427 oldal) itt valaszt talalsz sokmindenre mert mar sokan feltettek ezt a kerdest. De minden keppen ASM a legudvozitobb. Errol talasz sok jo leirast eloszor is a gyarto honlapjan. Szerencsere az MPLAB ingyenes es nagyon jol hasznalhato. Lehet de nem ajanlom a klf. szuper grafikus szines csili-vili forditokkal is probalkozni. Altalaban elkeszul 1-2 csipre es utana nincs szupport, elfelejtodik az egesz es mehetsz keresni masik forditot. Mindig figyelj hogy a fordito beepitheto legyen a MPLAB-ba. A MPLAB szimulatora jol hasznalhato es indulaskor PIC nelkul is tudsz probakat tenni es elemezni a mukodest. Ajanlom (ha van egy kis penzed) vedd meg a PICkit2-ot mint programozo es mint szimulator is jol hasznalhato (nezz szet az otthoni disztributor honlapjan). Probalkozhatsz esetleg epitessel is de ha nincs gyakorlatod es turelmed akkor udvozitobb egy gyari keszulek. Itt ebben a temaban talalsz sok tanacsot sok jo linket (magyar nyelvut is) . De a legfontosabb tanacs : A doksi olvasasa szinte mindenre ad megoldast.

Na jo szorakozast!
Udv Vili
(#) herzsolt válasza vilmosd hozzászólására (») Máj 18, 2008 /
 
Igen értem amit mondasz. Már vettem egy PICKIT2-t.
Gondolom az asm elsajátításához is kellene valami olyan olvasni való, ami leírja a dolgokat. A honlapon spec írás van, de valahonnan elkellene kezdeni.
Milyen olvasmányt ajánlasz, amiben benne van az asm leírása is, hogy mit miért stb?
(#) Thowra válasza vilmosd hozzászólására (») Máj 18, 2008 /
 
Üdv!
Azt használok, már megpróbáltam átírni a mintát ami benne volt de akkor az lcd.c sírt.
A minta elején van 3 féle pic megadva, ha azok helyett beírom a 16f627 et akkor nem engedi ferdítani :'(
Csatoltam a módosított mintát.

EX_LCDKB.C
    
(#) MPi-c válasza Thowra hozzászólására (») Máj 18, 2008 /
 
Á... nem így kell ezt csinálni...
Kb. csak ennyi:
  1. #include <16F627A.h>
  2.  
  3. #FUSES NOWDT, XT, NOPUT, NOPROTECT, BROWNOUT, MCLR, NOLVP, NOCPD
  4. #use delay(clock=4000000)
  5.  
  6. #include <lcd.c> //Ebben írd át a PIC és az LCD megfelelő kivezetéseit!
  7.  
  8. void main(){
  9.         lcd_init();
  10.         lcd_putc("\fKesz vagyok!");
  11.         lcd_putc("\nMasodik sor");
  12.         for(;;);
  13. }

Keresd meg a PICC\Drivers\LCD.c fájlt és ott add meg az LCD kivezetéseihez a PIC portját!
(#) vilmosd válasza herzsolt hozzászólására (») Máj 18, 2008 /
 
Hali

Nezd meg ezt az oldalt: t-es-t.hu
Eleg egyszeruen es ( foleg sokaknak olvashato) magyarul.
De a MPLAB elinditasa utan a help tartalmazza az utasitasok leirasat, szintaktikajat. Ja es a lenyeg: keress a web-en egyszeru mintapeldakat, es ezek alapjan a probald meg megerteni a PIC regisztereinek mukodeset. Sokat segit a MPLAB szimulatora ahol lathatod a regisztereket es a leptetes folyaman a valtozasokat.
Az vegulis mind1 hogy milyen csipet hasznalsz ( ha lehet NE F84-et, legalabb f627-628 v. f887) a szimulatorban le tudod kovetni a mukodest.
Keress ra a neten a Konya Laszlo nevere. O adott ki konyvet a PIC-ekrol de a honlapjan is sokmindent talalsz.
A Microchip honlapjan erdemes nezegetni az AN-eket, ahol sok trukkot talasz komplett alkalmazasok, letoltheto forrasprogramok, epitesi tanacsok stb. Van forum is (angol) ott is erdemes bongeszni a temakat.

Ja es csinalj egy probapanelt es koldokzsinort a PK2-hoz. Nagyon meggyorsitja a fejlesztes menetet.
Ha izgat nekem van tervem 18 es 20/14/8 labas joszagokhoz. (Eagle tervek) estleg elkuldhetem maganban.

Udv Vili
(#) Lozsa hozzászólása Máj 18, 2008 /
 
Szasztok!

Van megint pár kérdésem:
- lehet-e valahogy egy regiszter alsó (vagy éppen felső) félbájtját módosítani a másik fél módosulása nélkül? Tehát pl: nem tudom mi van a felsőben, de az alsó ba be kell írnom valamit. Közben a felső változatlan meradjon. Van erre valami egyszerűbb (gyorsabb) mód, mint egyesével a biteket állítgatni?

- CBLOCK-ban létrehozok egy változót (pl: alma), de nem adom meg a címét, hanem rábízom a linkerre. Ilyenkor debugolásnál honnan tudom hova írja, és hogyan tudom figyelni az értékét? (MPLAB)
(#) Thowra válasza MPi-c hozzászólására (») Máj 18, 2008 /
 
Üdv!
Így már értem a lényeget.
Az lcd.c be viszont nem találom a módosítandó részt.
A mellékletbe lévő részhez hasonlót kerestem de nem találtam

lcdpin.txt
    
(#) vilmosd válasza herzsolt hozzászólására (») Máj 18, 2008 /
 
Hali
Itt van egy par asm pelda magyarul kommentezve (nem csak Neked)
Udv Vili

asm_ex.zip
    
(#) vilmosd válasza Thowra hozzászólására (») Máj 18, 2008 /
 
Hali
Ez a driver alapvetoen 4 bites LCD vezerles.
A kivant port kivalasztasa ezzel a sorral tortenik:
  1. // #define use_portb_lcd TRUE
  2. Ha a B portot hasznalod ki kell venni a sor elejerol a kommentet.
  3. Ha megis mas portot hasznalnal az alabbi kodnal kell valtoztatni a port cimet:
#if defined use_portb_lcd
//#locate lcd = getenv("sfrORTB") // This puts the entire structure over the port
#ifdef __pch__
#locate lcd = 0xf81
#else
#locate lcd = 6
#endif
#define set_tris_lcd(x) set_tris_b(x)
#else
//#locate lcd = getenv("sfrORTD") // This puts the entire structure over the port
#ifdef __pch__
#locate lcd = 0xf83
#else
#locate lcd = 8
#endif
#define set_tris_lcd(x) set_tris_d(x)
#endif
Itt a #locate LCD = 8 helyere kell beirni a Te altalad hasznalni kivant port fizikai cimet(ha 16fxxx-t hasznalsz, 18F-nel a masik cim egyertelmuen).
De ha 8 bites LCD vezerlest hasznalsz ez a driver nem jo!
Udv Vili
(#) Thowra válasza vilmosd hozzászólására (») Máj 18, 2008 /
 
Üdv!
Az mindegy lenne, hogy 4 vagy 8 bit, egyenlőre csak azt szeretném elérni, hogy működjön, ki tudjak íratni valamit.
A beállítás még mindig problémás.
Kivettem a kommentet de akkor se jó

LCD.C
    
(#) vilmosd válasza Thowra hozzászólására (») Máj 18, 2008 /
 
Hali
Eloszor is nem tudom milyen oszcit hasznalsz de ezt korrektul meg kell adni a c forrrasban:

#use delay(clock=20000000) // a szam adja az ora
frekijet.
Az osc tipusat szinten jol kell megadni (XT , HS INTRC stb).
A LCD bekotese vmi ilyesmire kellene hasonlitani:

// D0 enable
// D1 rs
// D2 rw
// D4 D4
// D5 D5
// D6 D6
// D7 D7

Ha nem ilyen akkor igy kell bekotni mert a LCD.C ilyen forman fogja kuldeni a megadott portra (itt PORTB) az adatokat :

struct lcd_pin_map { // This structure is overlayed
BOOLEAN enable; // on to an I/O port to gain
BOOLEAN rs; // access to the LCD pins.
BOOLEAN rw; // The bits are allocated from
BOOLEAN unused; // low order up. ENABLE will
int data : 4; // be pin B0.
} lcd;

Ha minden jo akkor probald meg a szimulaciot az MPLAB-ban lepesenkent es ott latni fogod hogy mikent dolgozik a program.
Na egyenlore ennyi
Vili

(#) Lozsa válasza Lozsa hozzászólására (») Máj 18, 2008 /
 
Ja igen! Elfelejtettem odaírni, hogy Assembly-ről van szó. (bár lehet így is egyértelmű volt)
(#) trudnai válasza Lozsa hozzászólására (») Máj 18, 2008 /
 
Szia Lozsa,

Persze, hogy lehet, bitmanipulalo muveletekkel. Pl ki ES-eled a felso 4 bitet, majd VAGY muvelettel belerakod a biteket. Valahogy igy:

MOVF valtozo,W ; kiemeljuk a valtozo erteket a munka regiszterbe
ANDLW 0xF0 ; felso 4 bit marad az also 4 bit torlodik
ORLW 0x09 ; bealitjuk a biteket
MOVWF valtozo ; vissza pakoljuk az egeszet a valtozoba

CBLOCK-os kerdes: View menuben a Watch ablakot megnyitod, utana kijelolod a valtozo nevet a forrasban es egerral athuzod a Watch ablakba. Ugy is csinalhatod ha az Add symbol hoz eirod a valtozo nevet ill legordulobol kivalasztod es raboksz az Add Symbol gombra.
(#) Thowra válasza vilmosd hozzászólására (») Máj 18, 2008 /
 
Üdv!
4MHz es kerámia rezonátort használok, XT.
A kijelzőt átkötöttem.
A gond az, hogy fordítani se engedi.

Error 128 "LCD.c" Line 42(1,6): A #DEVICE required before this line

Az nem világos, hogy az lcd.c be mit kell mire átírni
(#) Lozsa válasza trudnai hozzászólására (») Máj 18, 2008 /
 
Én is gondoltam ilyesmi megoldásra, de ez szintén 4 ciklus, mint mikor egyesével állítgtom a biteket. Persze ha már 5 bitet kell változtatni akkor már gyorsabb így.
(#) VrGakos hozzászólása Máj 18, 2008 /
 
Sziasztok!

Mit kéne változtatnom az lcd.c-ben mert 4 soros kijelzőm van. Most csak 2 soros üzemmódban megy. És nagyon sok hülységet ír ki pl: azt akartam kiíratni vele hogy "Akos" és ezt írta : "?!#3"

Üdv: Ákos
(#) Lozsa válasza trudnai hozzászólására (») Máj 18, 2008 /
 
Ez a Watch ablakos dolog nem megy nekem...
Ha belehúzom belekerül, de azt írja mellé, hogy "symbol not found"
Add symbol gomb meg le van tiltva valamiért

Következő: »»   213 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem