Fórum témák

» Több friss téma
Fórum » PIC programozás
 
Témaindító: G-Lex, idő: Okt 24, 2005
Lapozás: OK   30 / 66
(#) icserny válasza watt hozzászólására (») Nov 5, 2010 /
 
Az adatlapja szerint lehet többször is programozni.
(#) kissi válasza icserny hozzászólására (») Nov 5, 2010 /
 
Tényleg többször programozható...

SteveBővebben: Link

Steve
(#) telectro válasza vilmosd hozzászólására (») Nov 5, 2010 /
 
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.
(#) icserny válasza kissi hozzászólására (») Nov 5, 2010 /
 
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)
(#) kissi válasza icserny hozzászólására (») Nov 5, 2010 /
 
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
(#) vilmosd válasza kissi hozzászólására (») Nov 5, 2010 /
 
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

30430c.pdf
    
(#) watt válasza icserny hozzászólására (») Nov 5, 2010 /
 
Igen, valami rémlett, de nem voltam benne biztos...
(#) tozso72 hozzászólása Nov 9, 2010 /
 
Ü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.
(#) icserny válasza tozso72 hozzászólására (») Nov 9, 2010 /
 
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?
(#) tozso72 válasza icserny hozzászólására (») Nov 9, 2010 /
 
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.
(#) tozso72 válasza icserny hozzászólására (») Nov 9, 2010 /
 
Bocs elírtam 16f887 a pic.
(#) icserny válasza tozso72 hozzászólására (») Nov 9, 2010 /
 
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
(#) tozso72 válasza icserny hozzászólására (») Nov 9, 2010 /
 
Köszönöm
(#) zenetom hozzászólása Nov 18, 2010 /
 
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"

  1. UDATA_ACS
  2. TOMB1   RES     .8


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.
(#) tozso72 válasza icserny hozzászólására (») Nov 18, 2010 /
 
Í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.

FREKI.ASM
    
(#) icserny válasza zenetom hozzászólására (») Nov 18, 2010 /
 
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:
  1. #include "p18cxxx.inc"
  2.    udata_acs      ; Adatterület lefoglalása
  3. i  res 2          ; unsigned int i;
  4. k  res 4          ; unsigned long k;
  5. RST CODE
  6.     goto start
  7. PGM CODE
  8. start:    
  9. ;--- i = 0xC428;
  10.    movlw 0x28
  11.    movwf i        ; i LSB = 0x28
  12.    movlw 0xC4     ;
  13.    movwf i+1      ; i MSB = 0xC4
  14. //   .....   stb.
  15.    goto $
  16.    END


Az RST és PGM szekciókat a linker script definiálja, lásd a PICCOLO projektben a PIC18f4550.lkr állomány alábbi sorait:
  1. SECTION    NAME=RST        ROM=vectors
  2. SECTION    NAME=PGM        ROM=page
(#) icserny válasza tozso72 hozzászólására (») Nov 18, 2010 /
 
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...
(#) zenetom válasza icserny hozzászólására (») Nov 18, 2010 /
 
Köszi, sejthettem volna...
(#) icserny válasza icserny hozzászólására (») Nov 18, 2010 /
 
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
(#) szucsip hozzászólása Dec 12, 2010 /
 
Ü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)
(#) vilmosd válasza szucsip hozzászólására (») Dec 12, 2010 /
 
Hali
A 4 kimenet variacioja csak 16 lehet. Esetleg ha peldakkal bovebben ecsetelned az elgondolast.
Csa Vili
(#) mgy válasza szucsip hozzászólására (») Dec 12, 2010 /
 
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
(#) szucsip válasza mgy hozzászólására (») Dec 12, 2010 /
 
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.
(#) zenetom válasza szucsip hozzászólására (») Dec 12, 2010 /
 
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.
(#) szucsip válasza zenetom hozzászólására (») Dec 12, 2010 /
 
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?
(#) zenetom válasza szucsip hozzászólására (») Dec 12, 2010 /
 
Ja, vagyúgy. Kicsit félreértelmeztem a problémádat. Elnézést.
(#) szucsip válasza zenetom hozzászólására (») Dec 12, 2010 /
 
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....)
(#) mgy válasza szucsip hozzászólására (») Dec 12, 2010 /
 
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.
(#) kaqkk válasza szucsip hozzászólására (») Dec 12, 2010 /
 
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 .

4kimpic.png
    
(#) vilmosd válasza szucsip hozzászólására (») Dec 12, 2010 /
 
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
Következő: »»   30 / 66
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