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   557 / 1210
(#) morzsa15 válasza Hp41C hozzászólására (») Aug 17, 2014 /
 
A PGM lábát 10K-s ellenállással földre kössem? Az még az érdekes ha külön ellenőriztetem a gomb-al akkor nincsen hiba.
A hozzászólás módosítva: Aug 17, 2014
(#) aroxol válasza Hp41C hozzászólására (») Aug 17, 2014 /
 
Amit most irtál tökéletesen működik, de csak szimulátorban. Pic-be viszont debugba a 69_et hex-be teszi.
A hozzászólás módosítva: Aug 17, 2014
(#) Hp41C válasza aroxol hozzászólására (») Aug 17, 2014 /
 
Ennyire nem lehet rossz aszimulátor... Töltsd fel a programrészletet!
(#) Kovabe hozzászólása Aug 17, 2014 /
 
Sziasztok
Segítséget kérnék egy 16F690-essel kapcsolatban. Belső 8MHz-orajellel ketyeg és szeretnék valami relatív orajelet generálni ami 1S-os, arra gondoltam hogy a TMR2-őt használom mert az számításaim szerint 64 lefutás 1 másodperc. Nem tudom mi az oka de nekem végtelenig fut. mi lehet az oka?
  1. //Megszakítás
  2.         //Megszakítás: Engedélyezés TMR2
  3.         st_bit(intcon,PEIE);
  4.         cr_bit(t2con,T2CKPS0);
  5.         cr_bit(t2con,T2CKPS1);
  6.         st_bit(t2con,TMR2ON);
  7.         t2con = t2con & 0x07;
  8.         pr2=16-1;
  9.         st_bit(intcon,GIE);
  10.         st_bit(pie1, TMR2IE);


  1. //Számítás
  2.         //Számítás:
  3.         //  time = time + 1
  4.         FCV_TIME = FCV_TIME + 1;
  5.  
  6.         //Feltételes elágazás
  7.         //Feltételes elágazás: time = 64?
  8.         if (FCV_TIME == 64)
  9.         {
  10.  
  11.                 //Számítás
  12.                 //Számítás:
  13.                 //  time = 0
  14.                 FCV_TIME = 0;
  15.  
  16.                 //Számítás
  17.                 //Számítás:
  18.                 //  utokeringtetes = utokeringtetes + 1
  19.                 FCV_UTOKERINGTETES = FCV_UTOKERINGTETES + 1;
  20.  
  21.                 //Feltételes elágazás
  22.                 //Feltételes elágazás: utokeringtetes = 45?
  23.                 if (FCV_UTOKERINGTETES == 45)
  24.                 {
  25.  
  26.                         //Számítás
  27.                         //Számítás:
  28.                         //  utokeringtetes = 0
  29.                         FCV_UTOKERINGTETES = 0;
  30.  
  31.                 // } else {
A hozzászólás módosítva: Aug 17, 2014
(#) Hp41C válasza aroxol hozzászólására (») Aug 17, 2014 /
 
A mullw .10 utasításban decimális 10 szerepel? A "." pontosan ezt jelenti, de írhatod 0x0A, H'0A', B'1010', O'12', D'10' formában is.
(#) morzsa15 hozzászólása Aug 17, 2014 /
 
Sziasztok!
Találtam egy 16f628A való programot De valami bolgár nyelvi azt hogy lehetne lefordítani? Mert azokat a szavakat amit ki ír azt nem találom meg a forráskódba. Forráskód letöltése
(#) usane válasza morzsa15 hozzászólására (») Aug 18, 2014 /
 
Mint Hp41C kolléga írta:
-Ellenőrizd a bekötést.
-Kapcsold ki a Fast programming mode-ot.
- A PGM-et földre húzni sosem árt, lógva lehet, hogy hibát okoz(hálisten nálam még nem fordult elő).
-PIC is lehet hibás, másikkal kipróbálni(végső eset).
-Köss a PIC-re külső tápot, ne PICkitről tápláld(némelyik gép USB-je igen csak szegényes és zajos tud lenni, lehet, hogy másik gépen működik).
-Próbáld ki MPlab-al programozni, PK2 programmer-el elő szokott fordulni. 2.6-os verziójával voltak gondok.
(#) usane válasza morzsa15 hozzászólására (») Aug 18, 2014 /
 
Nem egyszerűen. Nem is fogod megtalálni karakteres formában, mert azokat a program elején az __EEPROM_DATA sorok tartalmazzák hexadecimális számok tömkelegeként.
(#) morzsa15 válasza usane hozzászólására (») Aug 18, 2014 /
 
Eddig tökéletesen működött egyszer egyik tesztnél kapcsolt ki teljesen magától azóta ez a helyzet. És ha azokat a hexadecimális értékeket át írom akkor jó lesz? Még egy kérdés ezt hogyan tudom át konvertálni hex-be?
(#) usane válasza morzsa15 hozzászólására (») Aug 18, 2014 /
 
Ha eddig működött akkor ott valami elszállt.
Ha átírod a hexákat akkor jó lesz, de ahhoz tudnod kell hogy működik a HD44780 kompatibilis LCD-k karaktergenerálása.
HEX-be meg úgy tudod konvertálni, hogy MPlab alá feltelepíted a HI-TECH C fordítót, mert azzal készült, és lefordítod.
(#) morzsa15 válasza usane hozzászólására (») Aug 18, 2014 /
 
Ehhez a fordításhoz van leírás.
(#) brugo hozzászólása Aug 18, 2014 /
 
Szervusztok,
Megpróbáltam egy Projektet véghez vinni az MPLAB Project Wizard-al, de a Build All -után a következő üzenetet kapom : MPLINK 4.20, Linker
Copyright (c) 2008 Microchip Technology Inc.
Error - section '.config' type is non-overlay and absolute but occurs in more than one input file.
Errors : 1
(#) Birs Alma hozzászólása Aug 18, 2014 /
 
Sziasztok!

Tudna valaki segíteni.

Próbapanelemen van egy PIC 16f877A vagy 887. Továbbá 8Mhz-s kvarc a két 22pF kondenzátorral. Egy LED RA0-on egy 470ohomos ellenállással. 100nF a táplábak mellett. Mninde tápláb bekötve. MCLR felhúzva.

A LED et kellene bekapcsolni, hogy világítson.
Ha a 887-est dugom be, és az alábbi programot ara fordítom, rendben működik. A LED világít.
Ha a 877A-t dugom be, és az alábbi programot ara fordítom, a LED nem világít.

Mi lehet a baj?

  1. IFDEF __16F877A
  2.     MESSG "Device -> PIC16F877A"
  3.     #include <p16F877A.inc>
  4.      __CONFIG _HS_OSC & _CP_OFF & _WDT_OFF & _LVP_OFF &  _BODEN_OFF & _PWRTE_ON
  5.  ENDIF
  6.  
  7.  IFDEF __16F887
  8.     MESSG "Device -> PIC16F877A"
  9.     #include <p16F887.inc>
  10.         __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF &  _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF &  _HS_OSC
  11.         __CONFIG _CONFIG2, _WRT_OFF & _BOR21V
  12.  ENDIF
  13.  
  14.         org 0
  15.  
  16.         bsf     STATUS,RP0      ; Bank 1
  17.         movlw   0x06            ;
  18.         movwf   ADCON1          ; PORTA digitális             
  19.         bcf     TRISA,0         ; RA0 output
  20.        
  21.         bcf     STATUS,RP0      ; Bank 0
  22.         bsf     PORTA,0         ; LED ON!!  
  23.         goto    $                   ;
  24.        
  25.         end


Köszönöm a segítséget.
A hozzászólás módosítva: Aug 18, 2014
(#) vilmosd válasza Birs Alma hozzászólására (») Aug 18, 2014 /
 
Nem esetleg forditva? Mert a
  1. movlw   0x06          ;
  2.         movwf   ADCON1          ; PORTA digitális
kod a '877A-nal ertelmezheto, de a 887-nel nincs hatasa (vagyis van de nem a port beallitasra). A '887-nel igy kell digitalisra allitani a portokat:
  1. banksel     ANSEL       ;yes, bank 3
  2.         movlw       b'00000000' ;all ports digital I/O
  3.         movwf       ANSEL
  4.         movwf       ANSELH
(#) kissi válasza Birs Alma hozzászólására (») Aug 18, 2014 /
 
Bővebben: Link 41.oldalt ajánlom a figyelmedbe!
(#) morzsa15 válasza usane hozzászólására (») Aug 19, 2014 /
 
És azt lehet tudni hogy amik ott vannak hex-értékek azok hova tartoznak mármint arra gondoltam hogy mikor írja ki azokat.
(#) usane válasza morzsa15 hozzászólására (») Aug 19, 2014 /
 
Persze, a forditásra van leírás, ha ez kérdés volt, légyszíves kérdőjelet tenni a mondat végére, akkor érthetőbb, hogy mit akarsz.
Microchip MPlab user guide.

És természetesen a hex-ek hovatartozását is ki lehet hámozni a programból. Ráadásul a HD44780 kijelzőhöz is van leírás. Itt egy példa, hogy kell bele saját karaktert generálni. Bővebben: Link
(#) morzsa15 válasza usane hozzászólására (») Aug 19, 2014 /
 
Igen kérdés akart lenni csak mikor már észre vettem nem tudtam módosítani! Köszi. És azt hogy lehetne kihámozni? Saját karaktert nem akarok bele tenni csak sima betűket arról van valami lista vagy jó a sima online converter ami a betűt át konvertálja hexbe és oda írom el a 0x-et úgy jó lesz?
A hozzászólás módosítva: Aug 19, 2014
(#) Birs Alma válasza vilmosd hozzászólására (») Aug 19, 2014 /
 
Kösz, de nem. 877A-n nem működik! 887-en tökéletes. Való igaz, a digitális bemenet beállítása a 877A szerinti. De lényegtelen, mert most kimenetként van kezelve a port.

Persze igy jobb. De így is az helyzet, hogy ez a program 887-en működik, 877A-n nem!

  1. IFDEF __16F877A
  2.     MESSG "Device -> PIC16F877A"
  3.     #include <p16F877A.inc>
  4.      __CONFIG _HS_OSC & _CP_OFF & _WDT_OFF & _LVP_OFF &  _BODEN_OFF  & _PWRTE_ON
  5.  ENDIF
  6.  
  7.  IFDEF __16F887
  8.     MESSG "Device -> PIC16F877A"
  9.     #include <p16F887.inc>
  10.         __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF &  _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF &  _HS_OSC
  11.         __CONFIG _CONFIG2, _WRT_OFF & _BOR21V
  12.  ENDIF
  13.  
  14.  ERRORLEVEL -302
  15.  
  16.         org 0
  17.  
  18.         bsf     STATUS,RP0      ; Bank 1
  19.        
  20.         IFDEF __16F877A
  21.         movlw   0x06            ;
  22.         movwf   ADCON1          ; PORTA digitális             
  23.         ENDIF
  24.        
  25.         bcf     TRISA,0         ; RA0 output
  26.        
  27.         bcf     STATUS,RP0      ; Bank 0
  28.         bsf     PORTA,0         ; LED ON!!  
  29.         goto    $                   ;
  30.        
  31.         end
(#) usane válasza morzsa15 hozzászólására (») Aug 19, 2014 /
 
Nem kell ahhoz konverter. Van a kijelzőnek saját karakterkészlete ami általában angol. Át kell írni a programot, hogy azokat használja. Ott a link amit adtam, meg egy csomó példa meg leírás van hd44780 kompatibilis LCD-k kezelésére, és azok segítségével meg tudod oldani. Viszont ha azt sem tudjuk mit ír ki akkor hogy akarod lefordítani?
(#) morzsa15 válasza usane hozzászólására (») Aug 19, 2014 /
 
És arról a karakterkészletről van valami táblázat? Arra gondoltam ha van valami táblázat vissza keresem és lefordítom.
(#) usane válasza morzsa15 hozzászólására (») Aug 19, 2014 /
 
(#) morzsa15 válasza usane hozzászólására (») Aug 19, 2014 /
 
Ezt láttam én is de hogy kell kiolvasni? Azt a részét nem értem.
(#) vilmosd válasza Birs Alma hozzászólására (») Aug 19, 2014 /
 
Probald ki mind a ket esetet a MPLAB SIM-el.
(#) usane válasza Birs Alma hozzászólására (») Aug 19, 2014 /
 
És proci csere után átírod a DEFINE-t? Mert azt látom, hogy az IFDEF az benne van, de hol a DEFINE?
(#) Birs Alma válasza usane hozzászólására (») Aug 19, 2014 /
 
Igen, átírom.
Nincs benne define, de amikor kicserélem a procit, az MPLAB-ban átírom az eszközt (Configure/select devce..) a megfeleőre, újra fordítom a kódot (Project/Quickbuild) , aztán töltöm a programot a processzorba (Program the target devide).

Azért van ott a MESSG "Device ->...." hogy lássam is, valóban az fordul le amit szeretnék.

Igzából a 887-es rész nem is érdekel. Azt csak azért tettem bele, hogy kipróbáljam, a hardver jó-e. Mármint amibe a controllereket dugdosom.

Igaz, a 877-esnek kívülről kell oszcillátor. De az is megvan. És amint látszik, a 887-es is úgy van beállítva, hogy a külső oszcillátort használja. Ki is próbáltam, ha a kvarcot kiveszem a 887-esen sem működik. Szóval a 887-es is biztos, hogy a külső oszcillátorról meg. Szóval az is rendben van. Mennie kellene vele a 877A-nak is.
(#) Pali79 válasza Birs Alma hozzászólására (») Aug 19, 2014 /
 
Szerintem tele van tök felesleges dolgokkal ez a kód. Most nem tudom, de este kipucolom neked és ki is próbálom, hogy megy-e 877A-val!
(#) usane válasza morzsa15 hozzászólására (») Aug 19, 2014 /
 
Nem tudom milyen projectből van ez a kód, de hiányos. Olyan függvények vannak bene meghívva amik nincsenek a kódban definiálva. Ez így használhatatlan.
(#) usane válasza usane hozzászólására (») Aug 19, 2014 /
 
Javítok, csak régi a hitech-c. A legújabb meg mást nem ismer fel benne. Ááá. na mind1. Majd ha lesz időm megnézem. Addig olvasgasd az LCD kezelését.
(#) Birs Alma válasza Pali79 hozzászólására (») Aug 19, 2014 /
 
Kösz. Ez rendes tőled. Igazából elég lenne a lehető legegyszerűbb program, ami egy PIC16F877A RA0 lábára kapcsolt ledet tuti bekapcsolja. (8Mhz kristály van mellette.)
A hozzászólás módosítva: Aug 19, 2014
Következő: »»   557 / 1210
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