Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   899 / 1211
(#) bbb válasza don_peter hozzászólására (») Jan 31, 2017 /
 
Itt az eagle projekt hozzá.
Direkt figyeltem az alap szűrésekre is A benne lévő program egyébként fut, a legegyszerűbben ezt úgy ellenőriztem, hogy egy ledvillogtatást beraktam a végére, mikor mindent végre kellett volna hajtania.
Az LCD egy Siemens M55 kijelzője, van belőle pár darabom, azt akarom vezérelni. Ez nem ördögtől való, 16f628-al mikropascalban egyik honfitársunk már megtette (meg pár lengyel oldalt is találtam hozzá), én viszont miután a kijelzőt sikerült elérni, még szeretnék érzékelőt is kötni a picre (I2C-n, ezért kell az MSSP2-t használnom az SPI-hez), ezért választottam ezt a jószágot, nem azt, amihez már van működő kód.
(#) minicooper hozzászólása Jan 31, 2017 /
 
Üdv.! (szokás szerint) Van egy kis gondom.A CCS IDE saját könyvtárával próbálok egy 4x20-as LCD kijelzőt meghajtani de szerintem valamit nagyon rosszul csinálok.Van egy szöveg az "LCD420.h"-ban amit nemértek.
Idézet:
„// As defined in the following structure the pin connection is as follows:
// B0 enable
// B1 rs
// B2 rw
// B4 D4
// B5 D5
// B6 D6
// B7 D7
//
// LCD pins D0-D3 are not used and PIC B3 is not used.”

Ezt én úgy értelmeztem hogy alapból definiálva vannak a dolgok és elég ha igy bekötöm és nem szükséges definiálni.
A kód:
  1. #include <16f628A.h>
  2. #include<lcd420.c>
  3.  
  4. #fuses INTRC,NOWDT,NOPROTECT,PUT,NOMCLR
  5. #use delay(clock=4M)
  6.      
  7.      
  8. int x=0;
  9.  
  10. void main ()
  11. {
  12. lcd_init();
  13.    while(x<20)
  14.    {
  15.       output_high (PIN_B3);
  16.       delay_ms(200);
  17.       output_low (PIN_B3);
  18.       delay_ms(200);
  19.       x++;
  20.    }
  21.    lcd_putc("\fReady...\n");
  22.    
  23. }
(#) Lamprologus válasza minicooper hozzászólására (») Jan 31, 2017 /
 
Ebben a részben határozza meg hogy mi micsoda:
  1. struct lcd_pin_map {                 // This structure is overlayed
  2.            BOOLEAN enable;           // on to an I/O port to gain
  3.            BOOLEAN rs;               // access to the LCD pins.
  4.            BOOLEAN rw;               // The bits are allocated from
  5.            BOOLEAN unused;           // low order up.  ENABLE will
  6.            int     data : 4;         // be pin B0.
  7.         } lcd;


Ha úgy kötöd be ahogy az elején írja akkor működnie kell elvileg!
(#) Lamprologus válasza Lamprologus hozzászólására (») Jan 31, 2017 /
 
Mondjuk nekem ez a driver szimpatikusabb 4x20-as kijelzőhöz.
A hozzászólás módosítva: Jan 31, 2017

Flex_LCD420.c
    
(#) bbb válasza bbb hozzászólására (») Jan 31, 2017 /
 
Annak, akinek nincs Eagle a gépén, mégis szeretné látni, itt az eagleup-pal generált 3d kép (mínusz a tüskesorok). A dugdosós próbapanelbe élére állítva megy bele, így csak a középső két oszlopot veszi el és a sorokat ki lehet használni "teljes mellszélességben".
A hozzászólás módosítva: Jan 31, 2017
(#) don_peter válasza bbb hozzászólására (») Feb 1, 2017 /
 
Azt jól értem, hogy SPI és I2C-t is akarsz használni?
Mert ügye egyszerre csak az egyik fog sikerülni.
Az LCD-t nem lehet SPI nélkül vezérelni?

Én a helyedbe szimulátoron ellenőrizném a programot, lehet nem is azzal lesz a gond.
Vagy írj egy egyszerű adatküldést és debugold végig.

Arra kell csak figyelned, hogy amikor küldesz egy bájtot, akkor ugyan azt a bájtot kell fogadnod.
Tehát az SDO-t vezesd az SDI-be, így látni fogod debugból, ha érkezik adat.
Ha érkezik, küld is.
Az SDI pin-t ne felejtsd el bemenetre állítani.

Ha ez meg van, akkor biztos lehetsz benne, hogy az SPI beállításod jó.
Ugyan ezt megteheted I2C-nél is, ezzel ellenőrizheted saját magad.

Ha ezzel megvannak csak után lépj tovább, vagy is jöhet az LCD.
(#) Hp41C válasza don_peter hozzászólására (») Feb 1, 2017 /
 
Idézet:
„Azt jól értem, hogy SPI és I2C-t is akarsz használni?
Mert ügye egyszerre csak az egyik fog sikerülni.”

Azárt választotta ezt a típust mert két MSSI illesztő van benne.
(#) minicooper válasza Lamprologus hozzászólására (») Feb 1, 2017 /
 
A gond hogy igen amatőr vagyok e téren.Konkrétan LCD-vel még soha nem dolgoztam és fogalmam sincs hogy kell beüzemelni/használni a mellékelt "Flex_LCD420.c"-t.Például egy ilyen hibát kaptam rögtön az "includeálánsál".Mellékeltem a képet.

error1.PNG
    
(#) benjami válasza minicooper hozzászólására (») Feb 1, 2017 /
 
Nem a Flex_LCD420.c-t kell include-olni, hanem a Flex_LCD420.h-t. A C-t a projectbe kell felvenni.
(#) benjami válasza minicooper hozzászólására (») Feb 1, 2017 /
 
Ahogy elnézem, ez nem a szabályos több modulos forrás, hanem a sima copy-paste módszerrel működő. Így még működhet is, de az #include szó után egy szóköz nem ártana. A hibaüzenetet sajnos nem tudom elolvasni, mert annyira apró.
(#) minicooper válasza benjami hozzászólására (») Feb 1, 2017 /
 
Nos elvileg sikerült hibamentesen forditanom úgy hogy hozzáadtam a fájlt a projecthez de igysem működik a display.Körülnézek még hátha van valahol hiba de egyre inkább olyan érzésem van hogy halott a kijelző.
(#) Lamprologus válasza minicooper hozzászólására (») Feb 1, 2017 /
 
Kijelző kontrasztját beállítottad?
(#) Lamprologus válasza benjami hozzászólására (») Feb 1, 2017 /
 
Flex_LCD420.h-t ne keress, nincs, nem kell neki!

Valószínűleg a "#device PIC16F628A" részt hiányolta a fordító ... talán azért mert a Flex lcd fájt hitte a programfájlnak és nem azt ami a programodat tartalmazta ( ha jól látom lcd.c).
(#) Dempsey válasza benjami hozzászólására (») Feb 1, 2017 /
 
Jobb gombbal kattintasz a képre amit feltöltött és megnyitás új lapon és máris el tudod olvasni a hibaüzenetet
(#) kissi válasza Dempsey hozzászólására (») Feb 1, 2017 / 2
 
Még egyszerűbb, ha a kép alatti "filenévre" kattintasz !
(#) benjami válasza Lamprologus hozzászólására (») Feb 1, 2017 /
 
Szerintem nem szerencsés egy C fájlt includeolhatóra (de szép ez a szó) megírni. Szerencsésebb lenne átnevezni 'h' kiterjesztésűre, beleszúrni a többszörös hivatkozás kiszűrését, meg az lcd.c-ben a hivatkozást is módosítani. Így nem lesz gond abból, ha véletlen felveszed a projectbe, az meg önállóan is le szeretné fordítani.
(#) Lamprologus válasza benjami hozzászólására (») Feb 1, 2017 /
 
Nem én írtam a fájlt!
Itt találtam.
És használom úgy, ahogy ott leírták ... majd talán egyszer... ha már programozni is tudok ...
A hozzászólás módosítva: Feb 1, 2017
(#) kriszrap hozzászólása Feb 3, 2017 /
 
Sziasztok
PIC10f322 picket használok.
MikroC be írtam a kódot de valamiért nem tudom engedélyezni RA0 ami AN0 ADC-t mit ronthattam el??
Inkább belinkelem az egész kódot.
  1. void alap(){
  2.  
  3.   TRISA=0;
  4.   PORTA=0;
  5.  
  6.   ANSELA.ANSA0=0;
  7.   PWM2_Init(10000);
  8. }
  9. void main() {
  10.   int ertek=0;
  11.   alap();
  12.   PWM2_start();
  13.   while(1)
  14.   {
  15.   ertek=ADC_Read(0);
  16.   PWM2_Set_Duty(ertek/4);
  17.   }
  18. }

Köszönöm a segítséget elöre.
(#) Hp41C válasza kriszrap hozzászólására (») Feb 3, 2017 /
 
  1. ANSELA.ANSA0=0; // RA0 digitálisra kapcsolása
  2. ANSELA.ANSA0=1; // RA0 analógra kapcsolása
(#) kriszrap válasza Hp41C hozzászólására (») Feb 3, 2017 /
 
Átítam 1 re de semmi .
Azon a lábon van a poti bekötve .
1 láb Vdd 3 Vss 2 pedig a piklábába.
Belső osc használok.

Azt csinálja hogy tekerem a potimétert és amikor már teljesen kivan tekerve a potméter akkor villágit a led.
Ötlet?? vagy ne a szoftveresen keressem a hibát?
(#) Hp41C válasza kriszrap hozzászólására (») Feb 3, 2017 /
 
Mit csinálnak a PWM2_start() és PWM2_Set_Duty() függvények?
A TRISA = 0 helyett TRISA = 1 kellene, mivel a RA0 analóg bemenet.
Az ANSELA = 1 beállítaná az összes többi RA lábat digitálisra.
A hozzászólás módosítva: Feb 3, 2017
(#) kriszrap válasza Hp41C hozzászólására (») Feb 3, 2017 /
 
Basszus Tényleg a TRIS ooohh figyelmetlenség.... Írok majd hogy sikerült.
(#) kriszrap hozzászólása Feb 3, 2017 /
 
Müködik csak az a kérdésem hogy tekerem tekerem egy formán villágit a led és a poti vége fele hirtelen ugrik a fényerő ez miért lehet??
(#) bbalazs_ válasza kriszrap hozzászólására (») Feb 3, 2017 /
 
Mert a potenciometer feszosztokent mukodik, a vegen lesz a feszosztas nagy lepteku azonos lepesnel.

mondjuk 100k a potmeter
a kozepen egy kis lepes eseten 49k/51k

A szelen 98k/2k ujabb lepesre 99k/1K es igy tovabb.
(#) kriszrap válasza bbalazs_ hozzászólására (») Feb 4, 2017 /
 
Ö más eredetű volt a hiba hát nem tom hogy mért de remélem valaki tudja rá a választ.
ICSPDAT lábat ki kell huzni amikor amikor feszültséget adok a picknek .(ADC lábon van a ICSPDAT egyszerre ) és valamiért ICSPDAT láb össze szavarja ADC-t Ilyen lehet??? Másik 5khz helyet 10khz érdemes nálam használni hogy nagyobb fényerőt érjek el .(Ezt se értem miért) És az a kérdésem ha valaki letudná tesztelni meg köszönném 10khz lekövet 74hc595 blink lába???
Segítségeteket elöre köszönöm
(#) ktamas66 válasza kriszrap hozzászólására (») Feb 4, 2017 /
 
Nem tudom milyen programozót használsz, de a Pickitekben ezeken a lábakon van egy 4,7k lehúzó ellenállás, ez bezavarhat, ha túl nagy értékű a poti, ami amúgy sem javasolt. A HC595 le tud kezelni 10kHz-et, de igazából az adatlapban a fel/lefutási idő van megadva, tehát inkább a minimális impulzus szélességről lehet beszélni.
(#) kriszrap válasza ktamas66 hozzászólására (») Feb 4, 2017 /
 
500k a poti az sok legyen 100k???
(#) ktamas66 válasza kriszrap hozzászólására (») Feb 4, 2017 /
 
Még az is sok. Az adatlapban: 15.4 A/D Acquisition Requirements max. 10k a forrás javasolt kimeneti impedanciája. Persze ez lehet nagyobb is, csak a következményeket figyelembe kell venni. Ugyanott vannak a számítások is.
(#) kriszrap válasza ktamas66 hozzászólására (») Feb 4, 2017 /
 
Mekkorát rakjak párhuzamosan ellenállást a 100k Potinál és egy LDR ellenállásnál??
(#) ktamas66 válasza kriszrap hozzászólására (») Feb 4, 2017 /
 
Használj kisebb potit, vagy ha ehhez ragaszkodsz tegyél 10-100nF kondit a csúszka és a föld közé, és vedd nagyobbra az akvizíciós időt. Az LDR-re sem kell párhuzamos ellenállás, az ellenállása alapján kell egy feszültség osztó, és azt mérni, esetleg oda is egy kondi.
Következő: »»   899 / 1211
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