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   625 / 1210
(#) don_peter válasza usane hozzászólására (») Jan 29, 2015 /
 
Nem pont ilyen IC kell a kijelző U3-as helyére?
Az én 4sorosomnál meg U6 helyére?
(#) Hp41C válasza don_peter hozzászólására (») Jan 29, 2015 /
 
Linkeltem Neked egy fórumot, ott többek között ezt is megelmítették...
(#) usane válasza don_peter hozzászólására (») Jan 29, 2015 /
 
De, ez vagy ezzel kompatibilis IC-k vannak a 3.3V-os kijelzőkben.
(#) killbill válasza don_peter hozzászólására (») Jan 29, 2015 /
 
Idézet:
74HCT245 szimpatikusabb árban.. (killbill linkelte), csak itt ügye nincs duál suply..”
En a HCT245-ot ugy gondoltam, hogy egyiranyu az adatatvitel, es kizarolag a 3.3V iranybol az 5V iranyba. 4 data, RS, E. De akkor mar akar HCT14 is eleg, mert csak hat vonalra kell, legfeljebb a sw invertal. Nem latom sok ertelmet a BUSY figyelesnek.
(#) usane válasza don_peter hozzászólására (») Jan 29, 2015 /
 
Megvan a helye, még át is alakíthatod a kijelzőt 3.3V-osra.

2X16-osnál láttam olyan megoldást, ahol egy ellenállást hidaltak át.
A hozzászólás módosítva: Jan 29, 2015
(#) icserny válasza usane hozzászólására (») Jan 29, 2015 /
 
Az a probléma, hogy a hiányzó alkatrészek beültetésén kívül a panel átkötéseit is át kell konfigurálni, ami dokumentáció nélkül nem egyszerű feladat.
(#) edison14 hozzászólása Jan 29, 2015 /
 
Sziasztok!

Egy PIC-es panelmérőt tervezek amiben szét kell választanom az analóg és digitális földet. Úgy szeretném, hogy a stabilizátorok után jönne az analóg gnd utána pedig egy ellenálláson keresztül a digitális. Ha ez így jó elképzelés mekkora értékű ellenállást érdemes oda tenni?

A választokat köszönöm.
(#) usane válasza icserny hozzászólására (») Jan 29, 2015 /
 
Azért nem olyan vészes az. Csak a tápvonalakról van szó, egy kicsit is konyító elektromos szaki meg tudja csinálni, és Péter fórumtársunk csinált már egy-két ügyes dolgot.Na de mindegy is. Hozzá is lehet csatolni külső áramkörként.
A hozzászólás módosítva: Jan 29, 2015
(#) don_peter válasza icserny hozzászólására (») Jan 29, 2015 /
 
icserny: Azt hiszem egy átkötést kell szétszedni és egyet összeforrasztani..
Hp41C: Bocs, ezen átsiklottam biztos, legalább is az IC típusán mert azt nem láttam, csak azt olvastam, hogy írtak róla, hogy az kellene...

usane: köszi, ennek utána nézek, rendelek majd egyet belőle...
Köszi srácok a segítséget.
Most egy FET meghajtással fogok először próbálkozni és majd kiderül merre tovább...
(#) Zsora válasza don_peter hozzászólására (») Jan 29, 2015 / 1
 
Persze hogy működik. A nagyok is alkalmazzák a megoldást.
(Azért nem árt megfelelően méretezni.)

I2C_shift.pdf
    
(#) don_peter válasza Zsora hozzászólására (») Jan 29, 2015 /
 
Elég szimpatikus ez a leírás és persze ez a kapcsolás is.. Köszi..
A nyák már elkészült már csak le kellene adjam a rendelést a hestore-nak...
A hozzászólás módosítva: Jan 29, 2015
(#) razor1995 hozzászólása Jan 29, 2015 /
 
Sziasztok!
Autóba tervezek építeni egy "központi egységet" (idő, hőmérséklet stb). Szeretném, ha meg tudnám jeleníteni a kijelzőn azt is, hogy mennyi üzemanyag van még a tankban, de nem tudom, hogy ez hogyan oldható meg. A tankban az ellenállás 0-90ohm-ig van a test fele. Tudnátok segíteni abban, hogy hogyan köthetném be a dolgokat megfelelően, ahhoz hogy a "mutatós" mérővel párhuzamosan a kijelzőn is ki tudjam írni? (Persze a szint valós legyen, ne zavarjon bele a két dolog egymásba).
(#) Kapagerenda hozzászólása Jan 29, 2015 /
 
Sziasztok,
A switch utasítás segítségével szeretnék dekódolni értékeket. Legalább 500-600 külömböző esetre lenne szükségem. A kérdeésem az lenne van e rá mód, hogy ne kelljen egyesével begépelnem a külömböző eseteket 500 szor ( pl. case0, case1...case500)? Annyival egyszerűbb a dolog hogy a visszatérési értékek nem lennének annyira külömbözőek, csak minden 100. eset után válltozna, tehátt abbol csak 5 fajta lenne. Alább beillesztettem egy switch utasítással megírt programrészt amit szeretnék megvválltatoztatni amenyiben valaki a segítségével hozzátudna ehhez járulni

  1. unsigned short mask(unsigned short num) {
  2. switch (num) {
  3. case 0 : return 0b10111110;
  4. case 1 : return 0b00011000;
  5. case 2 : return 0b01101110;
  6. case 3 : return 0b01111010;
  7. case 4 : return 0b11111000;
  8. case 5 : return 0b11110010;
  9. case 6 : return 0b11110110;
  10. case 7 : return 0b00111000;
  11. case 8 : return 0b11111110;
  12. case 9 : return 0b11111000;
  13. }
  14. }
(#) nedudgi válasza Kapagerenda hozzászólására (») Jan 29, 2015 /
 
A switch előtt nem lehet a változót elosztani százzal?
(#) Bakman válasza Kapagerenda hozzászólására (») Jan 29, 2015 /
 
Ha az 500 bemeneti érték esetén pl. az első 100 esetén (melyek egymás mellett vannak) az 1-es kimeneti érték kell, akkor egyszerűen egy feltételes elágazásban egy tartományt kell megadni.

Esetleg keresni egy olyan kontrollert, amiben 512 bájtnyi EEPROM van (vagy külsőt használni), azt feltölteni a megfelelő adathalmazzal, működés közben pedig csak a cím szerinti adatot kiolvasni.
(#) Kapagerenda válasza nedudgi hozzászólására (») Jan 29, 2015 /
 
Ötletnek nem rosz, csak ez esetben nem lenne jó. Áttgondoltam a dolgot és a válltások nem pontosan 100 nál lennének. Válltozó lenne pl. első eset 0-96, második 97, harmadik 98 - 146 stb. Szóval nem egy pontos sorozatrol lenne szo
(#) kissi válasza Kapagerenda hozzászólására (») Jan 29, 2015 /
 
Szia!
Ha nem tudsz hozzá valami törvényszerűséget, függvényt megadni, akkor hogyan lehetne elkerülni a begépelést? Nincs, ami tudná automatizálni a gondolataidat !
(#) nedudgi válasza Kapagerenda hozzászólására (») Jan 29, 2015 /
 
Annyit azért megtehetsz, hogy begépelsz 5 darab if utasítást. Nem kell hozzá switch...
A hozzászólás módosítva: Jan 29, 2015
(#) silent15 hozzászólása Jan 29, 2015 /
 
Sziasztok, tudnátok nekem segíteni, hogy miért nem akarja úgy kezelni a megszakításokat, ahogy én?

  1. #INT_RB
  2. void megszakitas( void )
  3. {
  4.    lcd_putc("\f");
  5.    lcd_gotoxy(1,1);
  6.    If(input(PIN_B0))       //BAL gomb
  7.       {
  8.          lcd_putc("BAL");
  9.       }
  10.    If(input(PIN_B1))  //Jobb gomb
  11.       {
  12.          lcd_putc("Jobb");
  13.       }
  14.    If(input(PIN_B2))  //Le gomb
  15.       {
  16.          lcd_putc("LE");
  17.       }
  18.    If(input(PIN_B4))  //Fel gomb
  19.       {
  20.          lcd_putc("Fel");
  21.       }
  22.    If(input(PIN_B5))  //Enter gomb
  23.       {
  24.          lcd_putc("Enter");
  25.       }
  26.       delay_ms(1000);
  27. }
  28.  
  29. void main ( void )
  30. {
  31.    lcd_init();
  32.    enable_interrupts(INT_RB0);
  33.    enable_interrupts(INT_RB1);
  34.    enable_interrupts(INT_RB2);
  35.    enable_interrupts(INT_RB4);
  36.    enable_interrupts(INT_RB5);
  37.    enable_interrupts(GLOBAL);
  38.    while(1)
  39.    {
  40.  
  41.    }
  42. }


Ez most egymás után véletlenszerűen kiírja a szövegeket. Próbáltam If else-ekkel is, úgy sem volt jó.
Tudnátok segíteni, hogy miért csinálja ezt?
Köszönöm !
(#) nedudgi válasza silent15 hozzászólására (») Jan 29, 2015 /
 
Nem kéne a megszakításban kijelzőre firkálni...
(#) Frenzy hozzászólása Jan 29, 2015 /
 
Sziasztok! Segítségre lenne szükségem! Az alábbi asm-ből ki lehet olvasni a program működését valahogy? Kezdőként van esélyem rá, hogy sorról-sorra megértsem?

Előre is köszönöm
(#) kissi válasza Frenzy hozzászólására (») Jan 29, 2015 /
 
Szia!
Ki lehet olvasni, de nem kezdőknek való !
Ha elég elszánt és gondolkodó, elmélyülő vagy, akkor meg tudod tanulni, de nem 1 óra !
(#) bbalazs_ válasza razor1995 hozzászólására (») Jan 29, 2015 / 1
 
Egy mikrovezerlo AD bemeneten feldolgozod a potmeter jelet (autoban annyival bonyolultabb a dolog, hogy altalaban ket tekercs dolgozik egymas ellen, hogy a valtozo akkufesz hatasat kiegyenlitsek). Es kijelzed a kozponti egyseg kijelzojen.
Az AD bemenete elegge nagy ellenallasu ahhoz, hogy a muszerbe ne zavarjon bele.
Sokat segitene az auto evjarata, tipusa.
Masreszt a tank merese kicsit problemas, mert a benzinnel nem linearisan valtozik az ellenallas, leven altalaban egy koriven mozgo uszo karjarol van szo.
(#) Frenzy válasza kissi hozzászólására (») Jan 29, 2015 /
 
Hogy lehet megtanulni? Pl: ami nem GOTO vagy CALL utasítás és az address oszlopra utal, (mint mondjuk a MOVLW 0xc8) abból hogy tudom meg a 0xc8 jelentését?
(#) kissi válasza Frenzy hozzászólására (») Jan 29, 2015 /
 
Sokat kell tanulni, ezért mondtam, hogy nem kezdőknek való !

0xc8 azt jelenti, hogy 16-os számrendszerben C8, azaz 200 tízes számrendszerben. Ha tudod, hogy mit jelent a MOVLW 200, akkor ezt már megfejtettük !
Az utasítások teljes "alakját" megtalálod a PIC adatlapjában ( Instructions rész, ha jól emlékszem ), azt is sokat kell nézegetni hozzá, hogy ismerős legyen...
(#) kissi válasza kissi hozzászólására (») Jan 29, 2015 /
 
Segíthet még, ha írsz néhány soros programokat és fordítás után megnézed a Program Memory menüpontot az MPLAB View menüjében !
A hozzászólás módosítva: Jan 29, 2015
(#) bbalazs_ válasza Frenzy hozzászólására (») Jan 29, 2015 /
 
Persze. Disassemblalasnak hivjak (a gunyneve reverse engineering), sokat csinaltam.
elsokent szepen kinyomtatod, aztan a rutinokat levalasztod, bekeretezed, nevvel ellatod, a cimukre valo call es goto utasitasokat ellatod ezekkel a nevekkel. A felteteles ugrasokat be is lehet rajzolni a bal oldalara a programlistanak.
Aztan a memoriacimeket latod el rendes cimkevel.
Ha kell, akkor a regiszterek neveit is kijavitod.

De mind kozul a leghasznosabb, ha mikozben ujraalkotod a programot, idonkent leforditod a te progidat es a hexdumpot byte-rol byte-ra osszehasonlitod az eredetivel. Csak igy lehetsz biztos, hogy pontosan ugyanazt kapod vissza. Persze ezt erdemes egy segedprogival csinalni...
(#) Frenzy válasza kissi hozzászólására (») Jan 29, 2015 /
 
Köszönöm próbálkozok!
(#) razor1995 válasza bbalazs_ hozzászólására (») Jan 29, 2015 /
 
Opel Frontera 96os évjárat (2.0 benzin). Az nem baj ha nem halálpontos, csak úgy körülbelül (a dizájn kedvéért).
Tehát simán rákötöm a PIC egyik AD lábát a tankból jövő kábelre (amin a gyári műszer is van) és azt az értéket majd programban megfelelően kezelem?
(#) bbalazs_ válasza razor1995 hozzászólására (») Jan 29, 2015 / 1
 
Kozben mered a rendszerfeszultseget (7-9V korul inditozaskor, 12V korul gyujtassal es 14.4V korul jaro motorral) es ezzel az ertekkel korrigalsz.
Ezt erdemes egy feszultsegoszton at bevinni a mikroprociba, en azert vedenem egy 5.1-es zenerrel (5V-os mikroproci eseten).
Következő: »»   625 / 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