- SECTION NAME=RST ROM=vectors
- SECTION NAME=PGM ROM=page
Fórum témák
» Több friss téma |
Fórum » PIC programozás
Az adatlapja szerint lehet többször is programozni.
Köszönöm válaszod. Ok, értem, hogy régi típus, csak maradt belőle vagy 60-80 db teljesen új, és hát akkor a 90-es években még egy kisebb vagyon volt.
Szóval nem akarok rá új fejlesztést, csak a neten található kész f84-re írt programokat bele tenném aztán elhobbizgatnék vele.
Itt van az adatlapja.
itt van a programozási specifikációja A programmemória az adalap szerint min. 100-szor, tipikusan 1000-szer újraírható. Az adatlap végén vagy egy összefoglaló táblázat a 16c84 és 16f84 eltéréseiről. A legkeményebb eltérés az, hogy a 16c84 csak 36 bájnyi RAM-mal rendelkezik. Tehát nem minden 16f84-re írt program fut rajta (s egyéb eltérések is vannak, amelyek programmódosítást igényelnek)
Köszi, közben már át is írtam a választ, mert én is rákerestem , csak úgy emlékeztem, hogy OTP-s!
Steve
Hali
A 16C84 volt az elso PIC amiben a program memoria tobbszor irhato/torolheto volt. EEPROM technologiaval keszult a program memoria is, tipikusan 1000x volt ujra irhato. Voltak benne bugok rendesen, kesobb ez alapjan keszitettek el a flash valtozatot, amin mar javitottak sok mindent 16C84. 16F84. Udv Vili
Igen, valami rémlett, de nem voltam benne biztos...
Üdv !
Most kezdtem pic-kel foglalkozni. Egy pikit2 programozót kaptam és arra szeretnék írni egy 50 Hz-et figyelő programot.Ha 5 % eltérés van akkor gyújtson ki egy ledet. Van egy inverterem és az általa előállított frekit szeretném figyeltetni. Köszi a segítséget előre is.
Fölteszem, hogy nem a PICkit2 programozó gyári programját akarod átírni. Akkor mit is akarsz programozni vele? S milyen (program)fejlesztői környezeteben/nyelven?
Nem szeretném megváltoztatni a gyári kódot.Van ehhez egy kis kártya amin van egy 16f877 Assembleybe szeretném programozni a hozzá kapott mplab v8.0-as környezetben.Figyelném az inverterem kimeneti frekvenciáját.Ha eltér 5%-al akkor világítson az az egyik led.Ehhez kéne egy kis segítség.
OK, tehát a PICkit2 Debug Express csomagról van szó, amelyhez ezen az oldalon találsz mintaprogramokat "PICkit 2 Debug Express Lessons (PIC16F887)" címen és leírást "44-Pin Demo Board User's Guide". Ezen át kell rágnod magad (meg a PIC adatlapján), mert az alegységek (itt most elsősorban az időzítők/számlálók) ismerete nélkül nem lehet nekilátni. A fordulatszám-mérős topikokat is érdemes megnézni.
Hasznos magyar nyelvű olvasnivalók: PIC felhasználói Kézikönyv PIC tananyag MPLAB és assembly programozás
Hali!
Tömböt szeretnék létrehozni ASM-ben (MPLAB-ban) 18F2250-nél, de valamiért kiabál a fordító. Mégpedig: "Directive only allowed when generating an object file"
Pedig ennyi lenne az egész... Próbáltam a súgóból is kimásolt példával, de arra is ezt írja ki, sőt arra még többet... AZ UDATA-nál is ugyanez a helyzet. Mivel még most foglalkozok először a tömbökkel, gőzöm sincs mi lehet a baja.
Írtam valamit!
De nem egészen csinálja azt amit kéne.Ha a freki alacsony akkor alsó,két led ha magas akkor a felső két ledet szeretném hogy világítson.Ha pedig jó akkor a középső kettő.Ez csak az alsó kettőt gyújtja ki. Esetleg átnéznéd? Köszi előre is.
Meg kell nézni a Project/Build Options/Project beállításokat! A "Directive only allowed when generating an object file" figyelmeztetés arra utal, hogy abszolút módban akarsz olyan direktívát használni (jelesül UDATA_ACS), amit csak relokálható (gy.k. linker scriptes) fordításnál lehet használni.
A Program Files/Microchip/MPASM/Template/Object mappában találsz minta keretprogramokat, aszerint kella programnak kinéznie. Például így:
Az RST és PGM szekciókat a linker script definiálja, lásd a PICCOLO projektben a PIC18f4550.lkr állomány alábbi sorait:
Ne haragudj, de saját célra sem írok/olvasok ilyen jellegű programokat assemblyben, PIC16-ra meg különösen nem. Ez nyilvánvalóan az én hibám, de nincs hozzá idegzetem. Nem vagyunk egyformák...
Kis kiegészítés: sem a PIC bekötéséről, sem a frekvenciamérésre alkalmazott módszerről, sem a felhasznált főbb egységekről sem program felépítéséről nem mondtál semmit. Lehetséges, hogy végtelen türelemmel ezeket ki lehet silabizálni a kódból, de nem ez a kérdésfeltevés javasolt módja.
Szerintem a hibákat elsősorban a programod elvében kellene keresni, nem pedig a konkrét utasításokban. Az assembly programozás nagy veszélye, hogy az ember elmerül a részletekben, s közbe lehet, hogy már a kiindulásul szolgáló elképzelés is rossz volt. Tisztázni kellene azt is, hogy milyen felbontással és pontossággal akarsz mérni. Frekvenciamérésre egyébként van kész mintapélda: AN592 Frequency Counter Using PIC16C5x
Üdv!
A segítségeteket szeretném kérni PIC ügyben. Igazából soha nem foglalkoztam még sem mikrokontrollerekkel, sem pedig programozással. Az elektronikában viszont egy picit járatos vagyok. Sajnos most számomra leküzdhetetlen akadályba ütköztem: Fénydekorációhoz való meghajtást szeretnék csinálni, aminek 4 kimenete kell, hogy legyen. Viszont 18 állapotot kéne egymástól megkülönböztetni, ami már önmagában --ha hagyományosan, tárolókban gondolkodunk- 5db J-K flip floppot igényelne, de a bonyodalom az, hogy a 18 között van 8 állapot, ami ugyan az lenne.... A kérdésem az, hogy meg lehetne-e oldani 12FXXX PIC-kel (mert ez a legolcsóbb), illetve hogy kaphatnék-e segítséget tőletek. (Igen, konkrétan program megírásra gondoltam, és egy biztosan működő, nem bonyolult égető javaslatára)
Hali
A 4 kimenet variacioja csak 16 lehet. Esetleg ha peldakkal bovebben ecsetelned az elgondolast. Csa Vili
Hi !
" meg lehetne-e oldani 12FXXX PIC-kel (mert ez a legolcsóbb)" Gondolom, hogy a probléma megoldásához nem az az akadály, hogy a 12f509 230 Ft, a 16F690 400 Ft, a 16f887 620 Ft. ( hozzávetőleges bruttó árak a Chipcad-nél) Gondolom a fénydekoráció költségei 10 ezrekben mérhetőek. Egyébként mindent meg lehet oldani.( Jól vagy rosszul) Üdv Mgy
Nem, nem az a pár szár forint az akadály, hanem hogy nem értek a PIC -ekhez.
Csak azért gondoltam 12FXXX -re, mert annak 4 kimenete van + 1 I/O portja, és így a NYÁK tervezés is egyszerű lenne hozzá. Gyermeteg elgondolásom szerint a 4 kimenet pont ideális lenne, és az ötödik portot -ha nem túl bonyolult- talán fel lehetne használni bemenetnek, amivel a "számlálás" sebességét lehetne állítani. Akár külső órajellel (mondjuk egy TLC555 -tel), akár egy DC feszültséggel (amennyiben ez lehetséges, és nem bonyolítja meg túlságosan a program szerkezetét). Teszek fel egy PDF dokumentumot, ami tartalmazza a megálmodott működési táblát. (a zölden szedett sor az az első sor még egyszer leírva). Amúgy a fénydekoráció költségei nem 10ezrekben mérhetőek, csak egy LED-ekből kirakott, 4 betűs felirat lenne.
Hali!
7 szegmenses LED kijelző IC-vel megoldható. Vannak 4 digites meghajtó IC-k, amivel akár 4x7= 28 vagy 4x8=32 kimenet is meghajtható, olyan fajta kéne, amibe sorosan kell bevinni a bináris adatot, mert annak elég 3 láb. Multkor találtam egy pont ilyet, de nem tudom már hogy mi volt a tipusa. szerk.: meg talán kell még cím kiválasztó (amivel kiválasztod hogy melyik kijelzőn akarsz adatot megjeleníteni), amit meglehet oldani 1 PIC lábbal egy valamilyen léptető IC-vel. szerk2.: természetesen a 7szegmenses kijelző helyett a LED-eket rakod be, illetve azokat kapcsolgató tranyókat, ha sok lenne az áramigényük.
Köszi, de nem igazán értem a hozzászólásod.
HOgy keveredik ide az LED display driver? Miben lenne az segítségemre? És még PIC is kell hozzá? Akkor ez most nem olyan, mint az instant víz?
Ja, vagyúgy. Kicsit félreértelmeztem a problémádat. Elnézést.
Oké, csak nagyon csodálkoztam...
Egyébként más módszer is érdekel, nem ragaszkodom feltétlenül a PIC -hez (mivel nem értek hozzá), csak már nem nagyon tudok mit kitalálni, amihez ne kellene 1 szatyor alkatrész. (Még ha PLA égetőm lenne....)
Igazad van !
A pdf táblázat szerinti feladatra tényleg elég a 12F509. 4 db IRLZ-s FET-et meghajtva kapcsolhatod a LED sorokat. Egy porta rákötsz egy POTmétert és egy 100nF kondit és meg van a sebesség (ütem) beállítása. Az egész kb. 10 alkatrész + a ledek. A program nem egy bonyolult. A fénydekoráció szót értelmeztem rosszul.
Valami ilyesmire gondoltál ? Ez egy négy relés áramkör
De a relék elhagyhatók , és a meghajtó 500mA áramot bír kapcsolni , egy ledes cucchoz bőven elég lenne Ha érdekel a dolog , priv megbeszéljük .
Hali
Egy lehetseges megoldas a mellekletben. Igaz 16F684-re csinaltam. A kimenet 4x5 zold ledre van meretezve, igy 12 V Led fesz eseten kb. 13 mA aram folyik a ledeken. Ha tobb ledet akarsz hasznalni, akkor a R3-R6 ellenallasokar rovidzarral kell helyettesiteni es a LED csoportokra ki kell szamitani az elotet ellenallast ( 5 LED 150 ohm ). Egy csoportban 12 V eseten max. 5 LED lehet sorosan. A potival 20 mS -> 5.12 S kozott lehet a leptetes sebesseget valtoztatni. Lehet kulso vagy belso potit hasznalni, de csak az egyiket egyszerre. A programot at lehet irni termeszetesen mas procira is. Csa Vili |
Bejelentkezés
Hirdetés |