Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   678 / 1320
(#) smrtln válasza icserny hozzászólására (») Feb 17, 2010 /
 
rendben
köszi

smrtln
(#) icserny hozzászólása Feb 18, 2010 /
 
Az igazi programozó így írja: COPY CON: PIC_PROGRAM.HEX

Módosítani akartam a PIC18F14K50 HID bootloader konfigurációs beállítását. Mivel az ingyenes C18 fordítóval nem tudom beleszuszakolni a programot az első 4 kB memóriába,a gyárilag előfordított HEX állományt szerkesztettem át. Az egyszerűség kedvéért Notepad Editorral... A konfigurációs bitek módosítása után a sorvégi ellenőrző bájtot is aktualizálni kell. Amennyivel az előtte levő bájto(ka)t megnöveltük, ugyananyival kell az ellenőrző bájtot csökkenteni (modulo 0x100). Ha pedig csökkentettük az adatbájto(ka)t, ugyannyival növeljük az ellenőrző bájtot.

A gyárihoz képest az alábbiakat módosítottam:
  1. #pragma config PWRTEN   = ON        // Bekapcsoláskor 62 ms várakozás
  2.         #pragma config BOREN    = SBORDIS   // Brown-out Reset hardveresen engedélyezve
  3.         #pragma config BORV     = 27        // Reset szint = 2,7 V
  4.         #pragma config BBSIZ    = ON        // 4 kB boot blokk méret (HID bootloaderhez)
  5.         #pragma config WRTB     = ON        // Boot Blokk írásvédelem bekapcsolva
  6.         #pragma config EBTRB    = ON        // Boot Blokk táblaolvasás letiltva


Egyelőre gyűjtöm a tapasztalatokat...
(#) potyo válasza icserny hozzászólására (») Feb 18, 2010 /
 
Ha visszaállítod a géped dátumát, akkor ismét teljesverziósan működik a C18
(#) Attila86 hozzászólása Feb 18, 2010 / 1
 
Mi az a "bootloader" és a "float szám"? :hide:
(#) vicsys válasza Attila86 hozzászólására (») Feb 18, 2010 / 1
 
Bővebben: Link
A C nyelv erősen típusos ezért egy változó létrehozásakor meg kell határozni, hogy milyen típusú. A float jelöli a lebegőpontos (floating point) változókat, vagyis az olyan számokat, amelyeknek tört részük is van. Mind az int , mind a float számok pontossága az adott számítógéptől függ. A PDP-11 -en például az int 16 bit-es előjeles szám, vagyis olyan szám, amelynek értéke -32768 és +32767 között van. A float szám 32 bites mennyiség, ami körülbelül 7 értékes számjegyet jelent, 10-38 és 1038 közötti nagyságrendben. char - karakter egyetlen byte,
short - rövid egész,
long - hosszú egész,
double - duplapontosságú lebegőpontos szám.
...etc.
(#) szilva válasza Attila86 hozzászólására (») Feb 18, 2010 / 1
 
A bootloader egy olyan program, ami a PIC-ben fut, és a PIC programmemóriáját tudja írni. A bootloader programon keresztül így fel lehet tölteni a PIC-be tetszőleges felhasználói programot programozó nélkül.

Természetesen a PIC minden indításkor ugyanúgy indul, és a bootloader programnak rá kell jönnie valamiből, hogy neki kell aktiválódnia vagy a felhasználói programot kell hagyni, hogy fusson. Ez a valami lehet pl. az egyik I/O láb állapotának vizsgálata, így pl. egy megfelelően kialakított jumperrel lehet beállítani, hogy bekapcsoláskor a bootloader aktivizálódjon.

A bootloader program sokféle kommunikációval juthat azokhoz az információkhoz, ami alapján a PIC programmemóriáját fel kell töltenie. Például lehet írni olyan bootloadert, ami soros porton kommunikál, és az azon keresztül megkapott hex állományt programozza a PIC memóriájába, de lehet olyan program is a bootloader, ami USB-n kommunikál a PC-vel, és egy, a PC-n futó speciális program adja át neki az adatokat.
(#) Attila86 hozzászólása Feb 18, 2010 / 1
 
Köszönöm a válaszokat!
(#) icserny válasza Attila86 hozzászólására (») Feb 18, 2010 /
 
A bootloader egy olyan speciális program, ami képes a mikrokontrollert felprogramozni (már amelyik PIC alkamas a flash programmemória programból történő módosítására!) például a soros vonalon, vagy USB-n bejövő adatokkal. Természetesen lehet SPI, I2C, vagy CAN buszon keresztül is fogadni a beírandó programot.

A "float" változótípus olyan számok tárolására való, amelyek törtrészt is tartalmaznak és/vagy "csillagászati méretű" számok (amelyeket a gyakorlati életben "normál alakú számok" formájában szoktunk felírni - lásd pl. Avogadro-szám).

A számítástechnikában a normál alakú számokat is binárisan ábrázoljuk, +/-mmm x 2^+/-nnn alakban.
(tehát az exponens rész 2 hatványa, a mantissza jegyeinek helyiértéke pedig 1/2, 1/4, 1/8, 1/16... stb. A "normalizált" számnál az 1/2 helyiértéken 1 áll (nem nulla).

A 32-bites (egyszere pontosságú) számábrázolásnál egy egybites előjelből, 8-bites "eltolt" (127 többletes) kitevőből, és 23 bites mantisszából áll a lebegőpontos (float) szám, ami kb. 6-7 értékes jegyre pontos.
(#) trudnai válasza icserny hozzászólására (») Feb 18, 2010 /
 
Idézet:
„Az igazi programozó így írja: COPY CON: PIC_PROGRAM.HEX”


Es vajon a "COPY PIC_PROGRAM.HEX COM1" az igazi programozo egeto szoftvere?
(#) szilva válasza trudnai hozzászólására (») Feb 18, 2010 /
 
Ha van RS232-es bootloader a PIC-ben, akkor akár még lehet is
(#) Attila86 hozzászólása Feb 18, 2010 /
 
A carry bit "decf" utasítkor alul csordulás esetén 0 vagy 1 lesz?
(#) watt válasza Attila86 hozzászólására (») Feb 18, 2010 / 1
 
0-lesz.
(#) trudnai válasza Attila86 hozzászólására (») Feb 18, 2010 /
 
16F nem valtoztatja, csak a Z flaget -- de inkabb nezd meg az adatlapban, az a biztos!
(#) dolfin hozzászólása Feb 18, 2010 /
 
Üdv

Többször programoztam már PIC-et és az a folyamatos problémám hogy hogyan tudok benne tárolni adatot? Tehát hogy van egy programom például egy 3x3x3-as LED mátrix vezérlése, és különböző formákat kell kihozni, de ha minden képek külön-külön tárolok akkor az minden egyes képnél 3x3x3 = 27bit + a megjelenés ideje szóval minden kép kb 32bit, 5x5x5-ös led mátrixnál meg már 125 bit/kép, ezt hogy lehet beleprogramozni a PIC-be? Vagy ilyen esetben mindenki egy külső EEPROM tárolót használtok?

Köszi
(#) icserny válasza dolfin hozzászólására (») Feb 18, 2010 /
 
Itt van egy 5x5x5-ös LED kocka leírás. Ebben külső EEPROM van.
Az 5x5x5-ös kocka "képeit" (egy kis pazarlással) 25 bájtba tárolja, úgy egyszerűbb bánni vele.
(#) dolfin válasza icserny hozzászólására (») Feb 18, 2010 /
 
Üdv

Igen a kapcsolást megcsináltam, PIC is van hozzá és fejleszthető. Rendeltem is egy EEPROM-ot, akkor majd hozzákötöm. Köszi
(#) potyo válasza dolfin hozzászólására (») Feb 19, 2010 /
 
Egyes PIC-ek többtíz kbyte programmemóriával rendelkeznek, ezekben elég sok minta eltárolására van hely külső eeprom nélkül. A programmemória nem csak programot, hanem a program számára előkészített adatokat is tárolhat, mint pl. táblázatokat.
(#) watt válasza trudnai hozzászólására (») Feb 19, 2010 /
 
Attila 18F-et programoz, de sejthető a kérdésből, hogy a C állítódik, csak nem értette, miért nem 1-lett egy alulcsurdulástól.
(#) watt válasza dolfin hozzászólására (») Feb 19, 2010 /
 
Nekem egy 10x15-ös mátrix képei vannak 18F-es PIC program memóriájába letárolva sorban(egy programrekesz a 18F-eknél 16bites, így elfér egy rekeszben egy fénysor.) A kapcsolás fenn van az oldalamon, forrásprogrammal.
(#) vaszil29 hozzászólása Feb 19, 2010 /
 
sziasztok!
érdeklődnék, hogy tud -e valaki PIC16F87-hez vezérlő programot?!
assemblis hex file amit bekéne égetni.
CNC 3.2 unipoláris vezérlőhöz kéne a chip programja.

a progim megvan (WinPic)
a beégető is készen 16-illetve 40 lábú "Pic"-hez
szóval már csak a hex cod hiányzik.

a válaszokat és a segítséget előre is köszönöm.
üdv szabi.

java programozásban picit jártas vagyok, ott
a bit léptetések
így néznek ki.
boolean =logikai típus
byte= 8bites egész szám
short=16 bites egész szám
int=32bites, lebegő pontos szám (-2147483648- +2147483648)
long =64bit (-9223372036854775808 - + -//- )
float =32bit
double =643 bit
na ezeket már nem írom ki
egyszerüen nem tudom hasznát venni a HEX generálásban.
segítségeket előre is köszi.
(#) watt válasza vaszil29 hozzászólására (») Feb 19, 2010 /
 
Egyszer már kérdezted, ha jól emlékszem, és ha nem kaptál választ, biztos lehetsz benne, hogy nem tudunk(vagy az írásod miatt, nem akartunk) segíteni!
Nem tudjuk milyen áramkörhöz kell a program, és ha valamit utánépítettél, akkor ott kellene lennie a forrásprogramnak is!

Kérlek írj normálisan(nagybetűs mondatkezdés, írásjelek, tagolás), ha azt szeretnéd, hogy egyáltalán szóba áljunk veled! Köszi!
(#) dolfin válasza potyo hozzászólására (») Feb 19, 2010 /
 
És milyen módon tároljátok el az adatokat? Létrehoztok egy tömböt (array) és abba egyenként beírogatjátok kettes vagy tízes vagy tizenhatos számrendszerben?
(#) trudnai válasza vaszil29 hozzászólására (») Feb 19, 2010 /
 
Idézet:
„java programozásban picit jártas vagyok, ott
a bit léptetések így néznek ki...... egyszerüen nem tudom hasznát venni a HEX generálásban.”


Hat igen, PIC-et nem Java-ban programozzuk... Amugy nem ertem ezt a bit leptetest? Leirtad a valtozo tipusok mereteit, de bit leptetesrol nem is teszel emlitest... Mindegy is, a Java csak OFF tema lenne
(#) watt válasza dolfin hozzászólására (») Feb 19, 2010 /
 
Mi lenne, ha megnéznéd a programban, amit ajánlottam?
Ja és az sem ártana, ha elárulnád milyen fordítóval dolgozol!
(#) dolfin válasza watt hozzászólására (») Feb 19, 2010 /
 
Üdv

mikrobasic-ben programozok. ASM-hez, C-hez, Pascalhoz nem értek, forráskódból sem.
(#) potyo válasza dolfin hozzászólására (») Feb 19, 2010 /
 
Igen, például úgy. De hogy ezt a microbasicben hogy oldod meg, azt neked kell megkeresni. Esetleg ha valaki benéz ide, aki használ microbasic-et, akkor ő tud mondani valamit, én csak asm-ben és C-ben tudnék segíteni.
(#) icserny válasza dolfin hozzászólására (») Feb 19, 2010 /
 
Nem értek a MikroBasic programozáshoz, de szerintem a konstansok környékén keresgélj! Egydimenziós tömbre egy példa:

  1. const MONTHS as byte[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}


Úgy sejtem, hogy ezt többdimenzióssá kell fejleszteni...
(#) kissi válasza Attila86 hozzászólására (») Feb 19, 2010 /
 
Szia Attila!

Használd a szimulátort, ilyenekre is nagyon jó !

Steve
(#) vaszil29 hozzászólása Feb 19, 2010 /
 
Üdvözletem!

Sziasztok!

megkövetem magam és elnézést kérnék mindenkitől
akinek esetleg bántódást okozott a kérdésem.
(watt)
én igazándiból azért jöttem ide, mert a nálam okosabb emberkéktől akartam tanácsot, illetve némi műszaki segitséget kérni.
sajna nagyon amatőr vagyok, de viszont nagyon lelkes és ezért kerestem fel ezt a fórumot, ahol szakavatott
emberekkel megvitathatom a problémámat és talán megtalálom a "miértjeimre" a választ.
egyépként próbálok építgetni egy hobby CNC gépet
unipolaris vagy bipoláris vezérlő kártyával, de lehet, hogy legyártom mindkettőt aztán majd amelyik jobb az marad. szóval ez a tervem és ezért kotyogtam bele a fórumba
a segítségeket előre is köszönöm.
üdv szabolcs
(#) vaszil29 hozzászólása Feb 19, 2010 /
 
Úhhhhhhhhh!!!

Na csak most látom mi is volt a vétkem valójában.



(Kérlek írj normálisan(nagybetűs mondatkezdés, írásjelek, tagolás), ha azt szeretnéd, hogy egyáltalán szóba áljunk veled! Köszi!)


"Még szerencse, hogy a szürke szín alig látszik a monitoromon"

Úraim! Mindent értettem, figyelni fogok!!

üdv Szabolcs
Következő: »»   678 / 1320
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