Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A microchip cuccokat a forgalmazójánál lehet megvásárolni: chipcad.hu.
De pl a PICKIT2-t elég jól lehet utánépíteni is, cikk is van róla, és topik is, többféle NYÁKkal, furatszerelt, vagy SMD, stb-stb. Szerk: már a HESTORE is árulja a PICKIT2-t
Köszönöm a válaszokat, már csak egy kérdésem van. http://www2.chipcad.hu/www/arak.aspx?group=030113 Ezen az oldalon, melyik kell nekem ? Gondolok itt a CD-kre, a demólapra (vagy hogy hívják azt az alap áramkört, amin LED-ek, stb vannak), a programozóra, és ugye kábelekre. Csak mert laikusként, abból a 20 dologból nem tudom melyik micsoda (:
Hali!
Szerintem csak egy égetőt vegyél, itt HE-n is árulnak, Bővebben: Link ennyi pénzért simán megéri! Az általad linkelt doksit nem ismerem, ezeket tudom ajánlani: Bővebben: Link -->ennek van több része is. itt katt a "Felhasználói Kézikönyv"-re! ebből is rengeteget lehet tanulni
Idézet: Nagyon ajánlom, hogy SEMMIT ne vegyél, amíg ezt nem tudod eldönteni (nehogy egy hét múlva derüljön ki, hogy pont a másik kellett volna....)!„Ezen az oldalon, melyik kell nekem?” A termékazonosító számok (pl. DV164121) alapján mindegyikre rátudsz keresni, s érdemes pár napot/hetet rászánni a leírásaik böngészésére. Bővebben: Link1, Link2
Üdv Guruk!
Adott egy PIC18F4550-re íródott mintaprogram. (innen: Bővebben: Link). A C-ben való programozást még csak ugatom (Asm-ban egész jól elboldogulok) de a main.c "elemzése után felbátorodtam, hogy módosításokat hajtsak végre. Egy 7szegmenses kijelzőt akartam meghajtani vele. Áramkörileg OK de nem akarja azt csinálni amit kellene 1. probléma: Eredeti kód:
Módosított kód:
Természetesen a hw definíciókat is kiegészítettem:
Az eredeti kód az USB-re csatlakoztatáskor bekapcsolja az RA0-ra kötött ledet. A módosított kódnak portB és E beállítását valamint RA2-n lévő led bekapcsolását is kel(ene) csinálni. De nem teszi! A bemásolt kódrészletben azért van kikommentelve, mert már kínomban kísérleteztem. Így természetesen most nem kapcsol be a led (RA0-n). 2. probléma Az erederi kód 3 parancsot hajt végre: 0x80 - LED állapotának váltása 0x81 - nyomógomb állapotának lekérdezése 0x82 - LED állapotának lekérdezése
A módosított kódrész:
Ha a http://www.lvr.com/hidpage.htm lapon található generic_hid_vb program segítségével küldök parancsokat, akkor 0x80, 0x81 és 0x82-t végrehaja de 0x84-t nem! A 0x80-ba végzett módosítások mennek. Remélem erthetően fogalmaztam. Tud valaki valami megfejtést erre a már-már misztikus jelenségre? PLZ!
Az analóg funkciókat letiltottad a PORTB-n, tehát digitális kimenetre vannak állítva?
Más: Nem szokás 18F típusnál közvetlenül a portra írni, helyette a LAT regisztereket használjuk. Gondolom ez a Hi-Tech C-nél is így van.
Jó lenne látni a 7-szegmenses kijelző bekötését! A becsatolt kódrészletekből pedig nem látszik, hogy a portok beállítása megfelelő-e. Az olyan "régi vágású" mikrovezérlőknél, mint a PICF18F4550 is, az ADCON1 regiszterben lehet letiltani az ADC analóg bemeneteit (ADCON1 = 0b00001111; mindet letiltja), s a TRISx regiszterek (x = A, B, C, D, E) megfelelő bitjének 0-ba állításával kimenetre kell állítani a kijelző vezérlésre használt kivezetéseket.
Biztosan sok idő kell hozzá, de ha komolyan érdekel a PIC4550, szerintem érdemesebb volna a PICCOLO projekttel kezdeni. RA0-ra nem érdemes digitális kimenetet (LED) tenni, mert az analóg csatornák PICF18F4550 esetén csak RA0-tól kezdve, sorban engedélyezhetők.
Nem akar működni a debuggolás a PICkit3-al. Ezt mondja az MPLAB:
Idézet: „PICkit 3 detected Connecting to PICkit 3... Firmware Suite Version...... 01.26.43 Firmware type......................PIC18F PICkit 3 Connected. Device ID Revision = 00000002 Running... PK3Err0040: The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding.” A konfigurációs bitekben és a programban nem tudom hogy mi lenne rossz, mert működik a program.
Elnézést ! Legközelebb odafigyelek.
Szia!
DEBUG üzemmódban töltötted be a programot a PIC-be ?! Steve
Szia!
Most hogy rákérdeztél, nem. Köszönöm a segítséget!
A kijelző anódjai (3 digit) tranyón keresztül RE0-2-n, a szegmensek RB0-6-n. "Mezei" asm proggal megy!
Az eredeti USB-s prog is megy. Kapcsolgarja a ledet, beolvassa a nyomógomb állapotát. A portok baállítása:
Az RA0-n lévő ledet vezérli az eredeti prog. Amit nem értek, hogy a módosítás után miért nem megy pl RA2-n? PICCOLOval is kinlódtam de valami ott sem volt kerek. Amúgy ismerem a 4550-t de csak asm-ban irtam rá idáig (pl GSM-SMS kommunikáció, i2c stb.). A C egynlőre egy kicsit idegen számomra.
Az eredetiben a portX-et használják, ezért használtam én is azt.
Amúgy ha megy RA0-n akkot ugyanígy RA2-n is mennie kéne! Az előző hozzászólásomhoz becsatoltam az eredeti main.c-t.
Lehet, hogy a hardver profilban definiálva van a USE_SELF_POWER_SENSE_IO szimbólum? Akkor a főprogram bemenetre kapcsolja az RA2 lábat (mert ez a self_power nevű bemenet).
Na ezt most nem vágom! Mi kapcsol mit, hova? (Bocs az értetlenkedésért).
Csatoltam a HardwareProfile.h-t
Gyárilag ez így néz ki:
A lényeg az, hogy a két komment sor maradjon kommentben. Ha az áramköröd az USB-ről kapja a feszültséget, akkor ezekre nincs szükség és nem foglalják le az RA1, RA2 lábakat.
Sziasztok! Egy PIC24-et LDO-n keresztül táplálok egy 3,7V-os akkuval. Sima feszültségosztóval szeretném megfelezni a tápfeszt és ADC-re bekötni, hogy tudjam figyelni a feszültséget.
A kérdésem annyi, hogy a feszültségosztó ellenállásai ohm-os, 10-100 ohmos, vagy éppen 10-100 kiloohm-os értékűek legyenek? Köszönöm! googa
Na most te ezt hol találtad?!
Nálam ilyen nincs (legalábbis én nem találom). Ettől függetlenül, ha jól gondolom: #define LED0 RA0 --> LED0 = 1; --> Led világít akkor pl: #define CA1SEG RE0 --> CA1SEG = 0 --> kimenet L Vagy nem?
Szia!
A 10-100 ohm hamar lemerítené az akkumulátort... A 10 - 100 k túl nagy forrásimpedancia az A/D -nek, de egy kondenzátorral szűrve jobb megoldás, mint az első. Hogyan méred? Mi lesz a referencia?
Szia!
24F-es PIC-ekkel ugyan még nem foglalkoztam, de amikkel igen, azoknak mind 2,5kOhm volt a bemeneti impedanciájuk. Nem érdemes tehát ennél nagyobb nagyságrendű ellenállásokat használni az osztóban.
Sziasztok! Ennek is 2,5 k ohm a bemeneti impedanciája. Referenciának a PIC saját tápját venném alapul, ami LDO-ről szűrt 3,3V.
Idézet: A helyén. Az USB keretrendszer és a példaprogramok a Microchip Application Libraries-ben találhatók. Mivel HID eszközről beszéltél, az USB Device - HID -Custom Demos mappában néztem meg a Generic HID Firmware-t. Mivel PIC18F4550-ről volt szó, a Hardware Profile - PICDEM FSUSB.h állományt idéztem.„Na most te ezt hol találtad?!”
Idézet: A fentebb említett Hardware Profile - PICDEM FSUSB.h állományban is így definiálják a LED-eket. „#define LED0 LATAbits.LATA0”
Még sok mindent meg kell értenem...
Azért értetlenkedtem, mert nem találtam ilyen definíciót a project fájljaiban. Nem akarom elkiabálni, de működik a dolog. Ami azért zavar egy kicsit, hogy nem értem, hogy eddig miért nem ment s most mitől megy. Azért természetesen köszönöm, hogy foglalkoztál (folalkoztatok) a problémával. Úgy ertettem hogy ha a HardwareProfile.h-ban #define LED0 RA0 és a main.c-ben LED0 = 1; akkor a led világít Idézet: Nyilvánvalóan azért, mert más helyról, s esetleg más fordítóhoz kerestél (pontosabban találtál) programot. „Azért értetlenkedtem, mert nem találtam ilyen definíciót a project fájljaiban.” Idézet: Értettem én, csak ahogy már többen jeleztük, ez nem jó. Bitbillegtetéshez a LATA regisztert kell használni. „Úgy ertettem hogy ha a HardwareProfile.h-ban #define LED0 RA0” Idézet: „Értettem én, csak ahogy már többen jeleztük, ez nem jó. Bitbillegtetéshez a LATA regisztert kell használni.” Értem én (asm-ban én is a LATAx-et használom), de az eredeti kódban így volt. Mégegyszer köszi!
Sziasztok!
Tudtok egy oldalt mondani ahol az A/D átalakitásrol van le irás és magyarul. Esetleg ki irása egy lcdre. Köszi
A honlapomon a lap utolsó példaprogramja pont azt csinálja. PIC18F4520 MCU, a 2x20 karakteres kijelzővel rendelkező DB-DP113 kártya felhasználásával.
Mivel a lábkiosztás nálam eltér a "gyári könyvtárban" megadottól, így újra kellett fordítanom a p18f4520.lib könyvtárat (azt is leírtam, hogyan). A másik lehetőség: az LCD programozásáról szóló fejezetben bemutatott saját függvények használata. |
Bejelentkezés
Hirdetés |