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   1137 / 1140
(#) Peet19 válasza usane hozzászólására (») Okt 19, 2020 /
 
Köszi a linket. Kipróbáltam mindent de sehogy sem akar jó lenni.
(#) Bakman válasza Peet19 hozzászólására (») Okt 19, 2020 / 1
 
Megszakítási rutinban akarsz viszonylag nagy méretű rutint hívni és ez több memóriaterületet kívánna a rendelkezésre állónál (Stack ?). Már ha jól értelmezem a hibaüzenetet és a leírásod.
(#) Peet19 válasza Bakman hozzászólására (») Okt 19, 2020 /
 
7 szintű a stack. Memória sincs már valami sok (26B). Akkor lehet hogy ez lesz a hiba. Köszi.
(#) Bakman válasza Peet19 hozzászólására (») Okt 19, 2020 / 1
 
Rendezd át a programot úgy, hogy egy véletlen szám mindig rendelkezésre álljon. A megszakításban jelzed a főprogramnak egy segédváltozóval, hogy elhasználta a számot, igyekezzen újat generálni a legközelebbi megszakításhoz.
(#) nedudgi válasza usane hozzászólására (») Okt 19, 2020 /
 
A .hex fájl nem tartalmaz címkéket, azt a .map fájlból lehet(ne) kinyerni.
Az egyedüli megoldás, ha a generált címkéket szövegszerkesztővel lehet beleszerkesztgetni, ha már kitaláltad a funkcióját.
Harmincvalahány éve i8080-ra (CP/M) írtam egy ilyet, de PICre már nem fogok.
A hozzászólás módosítva: Okt 19, 2020
(#) Peet19 válasza Bakman hozzászólására (») Okt 19, 2020 /
 
Ez jó ötlet, köszi. Most úgy csináltam hogy a while-ba beleraktam a rand-ot ami folyamatosan generál egy véletlen számot, amit egy változóba rakok és amikor szükség van rá mindig rendelkezésre áll. Most így jó, csak annyi a baj ezzel hogy non-stop pörgeti a rand-ot a while, majdnem fölöslegesen mert csak 1s-onként kell egy újabb szám. 1s alatt gondolom egy jó pár ezerszer felülírja a változó értékét, de mivel nincs más a while-ban gondolom ez nem probléma.

Megoldottam, köszi. Most már csak akkor generál új számot ha lefutott a megszakítás
A hozzászólás módosítva: Okt 19, 2020
(#) proli007 válasza nedudgi hozzászólására (») Okt 19, 2020 /
 
Hello! Én anno 8048-ra írtam ilyesmit. De keserves kenyér a visszafordítás értelmezése, főleg magas szintű nyelvnél és táblázatok esetén..
A hozzászólás módosítva: Okt 19, 2020
(#) Pali79 válasza usane hozzászólására (») Okt 20, 2020 /
 
Nem mondtam, hogy egyszerű, de nem lehetetlen.
(#) nedudgi válasza nagym6 hozzászólására (») Okt 20, 2020 /
 
Egyről tudok, Mikado néven futott.
(#) Pali79 válasza sima55 hozzászólására (») Okt 20, 2020 /
 
Eléggé, de mindenképpen kelleni fog egy programozó PICKIT vagy valami amiven megpróbálod kiolvasni az eredeti tartalmat.
(#) Pali79 válasza nagym6 hozzászólására (») Okt 20, 2020 /
 
Az Mplab is tud ilyet, nem kell külön program hozzá.
(#) miki79 hozzászólása Nov 9, 2020 /
 
Sziasztok!
Olvastam már több helyen is ezt: 0x0000 ;0x0000015 mit jelent ez a számítás technikában?
(#) Bakman válasza miki79 hozzászólására (») Nov 9, 2020 /
 
Ezek hexadecimális számrendszerben leírt számok.

0x0 = 0
0x15 = 21

Az mindegy, hogy a szám előtt hány nulla van, az értéke nem változik. Arra jó hogy jelezze, az illető szám hány biten van tárolva.

0x0000 -> 16 bites szám
0x0000015 -> 28 bites szám
Utóbbinál valószínűleg lemaradt egy nulla, mert ez a hossz nem használatos számítástechnikában sem. Az adattárolás alapja a bájt, ami nyolc bit.

0xF1 = 241 (255)
0x4A02 = 18 946 (65 535)
0xAAF44400 = 2 868 134 912 (4 294 967 295)

A lefoglalt bájtok száma adja meg, hogy maximum mekkora szám fér el benne, ezek az értékek vannak zárójelben.
(#) miki79 válasza Bakman hozzászólására (») Nov 9, 2020 /
 
Köszönöm!
A választ értem!
A 0x egy jelölés arra hogy hány bitten ábrázolják az adott értéket,de ha utánna irják,
hogy valamib,valmid,valamih az...?
(#) Bakman válasza miki79 hozzászólására (») Nov 9, 2020 /
 
Nem. A 0x a hexadecimális jelölése. A 0b a binárisé (pl. 0b01101001). Szokás még 45A3h hazsnálata is.
(#) matheattila válasza miki79 hozzászólására (») Nov 9, 2020 /
 
Szia,

Ahogyan már a többiek is írták a 0x-el kezdődő számok hexadecimális számok, ami 16-os számredszerben van. Ez annyit jelent, hogy a számok 0-tól 15-ig változnak (ami összesen 16) nem úgy, mint a hagyományos decimális (10-es) számrendszerben ahol 0-tól 9-ig számolunk.
Ahhoz, hogy 16-ig lehessen számolni egy digit-en betüket is kell használni A-tól F-ig ahol A = 10, B = 11, ... F = 15.
Így a 0x8 az még 8-at jelent viszont a 0xE az 14-et.

Mint ahogy a 10-es számrendszerben is lehet több számjegyű számot alakítani azzal hogy 10 többszörösével szorzunk majd összeadunk (pl 123 = 1*10*10 + 2*10 + 3) úgy a 16-os számrendszerben is lehet, csak ott a 16 többszörösével kell ami kicsit bonyolít a dolgon.
Így tehát a 0x10 az valójában 1*16 + 0, a 0x23 meg 2*16 + 3 lenne, a 0x123 meg 1*16*16 + 2*16 + 3.

Ahogyan azt már említették, ezeket a számokat többnyire számítástechnikában használják ahol bitekben és bájtokban (1 bájt az 8 bit) adják meg, így 1, 2, 4, 8, vagy 16 számjegyből állnak a leggyakrabban, pl:
0x1
0x55
0x12D0
0x005500AA
Mivel az F a legnagyobb érték ebben a számrendszereben ezért éppen az határozza meg, hogy mekkora lehet pl 8 vagy 16 biten az adott szám maximális értéke:
8 biten 0xFF ami 255-nek felel meg
16 biten meg 0xFFFF ami meg 65535 és így tovább, 32 meg 64 biten.

Hogy miért is pont 16-os ez a számrendszer ez azért van mert így lehet a maximálisan kihasználni a számok bináris megjelenítését. Ha megnézed a táblázatot ezen a linken Bővebben: Link, akkor láthatod, hogy a 9 az csak 0b1001 és ahhoz hogy elérjünk a 0x1111-hez, hogy teljes legyen a kép még be kell iktatni 6 másik számjegyet (betüt) A-tól F-ig.

Lehet kicsit részletesen írtam, de remélem segítettem
(#) zoltan48 hozzászólása Nov 10, 2020 /
 
Ödvözöök mindenkit! Kis segitségre lenne szükségem van 4 asm fájl amit szeretnék ha hex formátumra valaki átkonvertálná, sajnos nem értek hozzá de fontos lenne. Aki meg tudja csinálni kérem irjon már.


Köszönöm
(#) pipi válasza zoltan48 hozzászólására (») Nov 10, 2020 /
 
Hali!
Ahhoz tudni kellene milyen processzorhoz, milyen fejlesztőrendszer alatt készült az asm.
(#) zoltan48 válasza pipi hozzászólására (») Nov 10, 2020 /
 
Üdvözöllek ez a két fájl lenne az ha jó látom és olvasom AVR type ezt szeretném feltölteni az Attiny24-be
(#) LMagic hozzászólása Nov 11, 2020 /
 
Sziasztok!
Kezdő vagyok, és segítséget szeretnék kérni.
Szükségem lenne egy egyszerű alapprogramra, ami villogtat két ledet. Az egyiket lassabban, a másikat gyorsabban. A pause utasítással dolgozó progi nem jó.

PIC18F46K22 a procim.

Pic Basic Pro-t használok.

Természetesen a progit tovább szeretném bővíteni, de a kiinduláshoz szükségem lenne egy kis segítségre.
Köszönöm, ha valaki segít!
A hozzászólás módosítva: Nov 11, 2020
(#) nedudgi válasza LMagic hozzászólására (») Nov 11, 2020 /
 
Nem ismerem azt a nyelvet, de szerintem a pause felhasználói beavatkozásra várást jelent. Valószínűleg delay függvényt kellene használnod.
(#) LMagic válasza nedudgi hozzászólására (») Nov 11, 2020 /
 
A pause utasítás mögé beírt számmal lehet beállítani, hogy mennyi időre álljon meg a program.
pl. pause 1000, akkor 1 másodpercre áll meg. így lehet villogtatni, csak így a progi többi része is megáll, és az nem jó.
(#) pipi válasza LMagic hozzászólására (») Nov 11, 2020 /
 
A timer megszakításoknak nézz utána, hogy kell itt megcsinálni, abban növelsz(vagy csökkentesz) két számlálót, amikor elérték a határértéküket akkor gyújtod/oltod az egyik ill. másik ledet.
(#) sonajkniz válasza LMagic hozzászólására (») Nov 11, 2020 /
 
Mindenképp állíts be egy timert megszakításra ahogy pipi is írta. Igazából amíg egyéb feladat nincs, a főprogram csak ennyiből áll, hogy egy goto utasítás ugyan azon a soron forgatja.
A megszakításban számol két számláló a feltöltött értékről visszafelé. Amint valamelyik lejár, újra feltöltöd a számlálóját. A hozzá tartozó kimenetet pedig billegteted. Assemblyben ez egy BTG utasítással működik. Biztos van basic-ben is megfelelője.
(#) Vfr72 hozzászólása Nov 11, 2020 /
 
Sziasztok.
Választ keresem az alábbi problémára: adott egy 18F2550 MCU és pickit3 programozó.
A hiba a következő: az áramkör csak a programozóról táplálva működik, külső tápról nem.
A programozóról leforrasztottam a clock és a data, valamint a reset vezetéket is, csak a táp maradt, ebben az esetben is a programozóról működött az áramkör.
(#) pipi válasza Vfr72 hozzászólására (») Nov 11, 2020 /
 
Reset láb lebeg, vagy van rajta felhúzó, és kondi, vagy belső resetre van állítva?
(#) kissi válasza Vfr72 hozzászólására (») Nov 11, 2020 /
 
Szia!

A RESET (MCLR) lábon mi van, ha leforrasztottad róla a vezetéket ( felhúzó ellenállás?!)?
(#) nedudgi válasza Vfr72 hozzászólására (») Nov 12, 2020 /
 
Debug módban fordítottad? A külső táp működik, eljut táp/föld a kontrollerre a külső tápról?
(#) kissi válasza nedudgi hozzászólására (») Nov 12, 2020 /
 
A Debug mód nem menne, ha a programozónak már csak a táplábai vannak csatlakoztatva! Kontakt vagy RESET probléma lesz!
(#) Vfr72 válasza pipi hozzászólására (») Nov 12, 2020 /
 
Az MCLRE=on. A resetláb tápra húzva 10k-s ellenállással, föld felé 100nf. A 100nf-el párhuzamosan reset-gomb. Elkövettem azt, hogy a programozó DAT és CLK, valamint a RESET lábát leforrasztottam az MCU lábáról, azaz csak a tápot adta a programozó: a program futott.
Következő (eretnek) kísérlet: a programozó tápját az áramkör betáp pontjára kötöttem: a program fut. Ha külső tápt adok, nem fut. Már a teszt miatt annyira lecsupaszítottam az áramkört, hogy csak a PORTA kimeneteken van 8db led, amit villogtatok... Tehát az egész áramkör minimális alkatelemekből áll. A reset jól működik, mert (ha) fut a program, akkor a gomb megnyomására leáll a program működése.
Következő: »»   1137 / 1140
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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