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   709 / 1210
(#) Bell válasza Topika hozzászólására (») Okt 13, 2015 /
 
Aki ismeri, együtt használja.
Aki nem ismeri, nem kell bántani, ha már segíteni nem tudsz rajta.
(#) Bell válasza sonajkniz hozzászólására (») Okt 13, 2015 /
 
Itt az ideje a megvilágosodásnak
(#) sonajkniz válasza Bell hozzászólására (») Okt 13, 2015 / 1
 
Jó!
Kapcsolok neked lámpát!
A viccet félretéve. Akkor fogok majd magasabb szintű programnyelvet használni, ha már olyan szinten tudok asm.-ben programozni, hogy csak időmegtakarítást jelentsen nekem a C és társai.
Ha beleolvasol az asm.es topicba, ott leírtam, miért választom mindíg a nehezebbik utat.
(#) nedudgi válasza sonajkniz hozzászólására (») Okt 13, 2015 /
 
Hardverközeli programozásnál az assembly nyelvű program a legtöbb esetben előnyösebb, könnyebben megérthető.
  1. ;
  2.  bsf ADCON,ADON

A magas szintű nyelvek előnye ott van, ahol komplikáltabb számításokat kell végezni.
A hozzászólás módosítva: Okt 13, 2015
(#) Bell válasza sonajkniz hozzászólására (») Okt 13, 2015 /
 
Az alapok elsajátítása nem a nehezebb út, hanem a kezdet, a minimum.
Az asm néhány tucat utasítása, pár fogalom és a szokásos algoritmusok viszonylag hamar megtanulhatók és remek lehetőség az alkotásra.
(#) sonajkniz válasza Bell hozzászólására (») Okt 13, 2015 /
 
Idézet:
„Az alapok elsajátítása nem a nehezebb út, hanem a kezdet, a minimum.”


Ez így van, ahogy mondod.
Épp ezért nem értem, hogy a legtöbb C-ben, vagy egyébben programozó, miért nem tud egyáltalán asm.-ben programozni.
Idézet:
„pár fogalom és a szokásos algoritmusok viszonylag hamar megtanulhatók”


Na itt van a kutya elásva. Innen válik nehezebb úttá. Amikor már nem a megtanult "szokásos" algoritmusokkal akarsz dolgozni. Vagy mert nem elégítik ki az igényeidet, vagy mert úgy érzed, tudnál jobbat. És elkezded megírni a saját algoritmusaidat, függvényeidet, a programkörnyezethez igazítva. Azután jönnek sorra egyre nagyobb felbontású GLCD kijelzők, amikhez asm.-ben nincs könyvtár. A vezetékes, és vezeték nélküli adatkapcsolatok. (jelenleg ennek az elején tartok) A linearizációs ciklusok. (Még példaprogramot sem találtam róluk)
Ez utóbbihoz még annyit, A ciklus első számítási részét, igazából csak egyszer kell elvégezni, mégis minden PLC, minden futtatásnál végigküldi az egészet. Processzoridőt veszítve ezzel. Gyanítom, a C sem tesz másként. Viszont asm.-ben remekül leválasztható.
Nos, azt hiszem, mostmár tényleg kiveséztük a témát.
Üdv mindenkinek!
(#) Zsolt2 válasza Topika hozzászólására (») Okt 13, 2015 /
 
Idézet:
„_asm és az _endasm parancsok közé kell az asm kódrészletet beírni”

Nem mindegyik fordito tamgatja ezt a valtozatot. Peldaul XC16-ban eleg macerás beilleszteni az ASM kódrészletet, főleg, ha több sorrol van szó.
(#) Hp41C válasza nedudgi hozzászólására (») Okt 13, 2015 /
 
[quote]A magas szintű nyelvek előnye ott van, ahol komplikáltabb számításokat kell végezni./quote]
... amennyiben támogatja a számábrázolást. 32 bitnél hosszabb (nem 64 bites) egészekkel való számolás.
Pl. 48 bites egész aritmetika van a frekvenciamérőmben (összeadás, kivonás, osztás szorzás és BCD kóddá alakítás ill. BCD binárissá alakítás) - természetesen assembly -ben. Az egész műszer programja (nincs 4k) röhögve belefér A 18f242 -be is.
(#) Bell válasza sonajkniz hozzászólására (») Okt 13, 2015 / 1
 
Az asm rákényszerít, hogy regiszter és bit szinten legyél tisztába a hardverrel, a C-nél gyakran elég, ha fekete dobozként bánsz vele, ismersz pár alapfogalmat, és tudod melyik dróton mikor mi van.

Ezt nem értem:
Idézet:
„A ciklus első számítási részét, igazából csak egyszer kell elvégezni, mégis minden PLC, minden futtatásnál végigküldi az egészet. Processzoridőt veszítve ezzel.

Egy ciklus magja C-ben és asm-ben is mindig végrehajtódik, ha teljesül a feltétel. A PLC teljesen más eszköz, nem keverném ide.
Egy programot megtervezel fogalmi és logikai szinten, majd az egyes részeket megvalósítod, összekapcsolod. A C némi áldozat árán lényegesen több lehetőséget kínál mindezeknek a gyors megvalósításhoz.
Ha van időm, néha ujjgyakorlatként megírom ugyanazt C-ben és asm-ben is és gyakran utólag mindkettőn egyszerűsítek a másik nyelvben szerzett tapasztalat alapján.
(#) Hp41C válasza Bell hozzászólására (») Okt 13, 2015 / 1
 
Néha nem árt megnyitni a Disassembly ablakot, és a leghosszabbra fordított forrás sorral kezdve egyszerűsíteni a sorokat, hogy gyorsabb kódot kapjunk.
(#) nedudgi válasza Hp41C hozzászólására (») Okt 13, 2015 /
 
Most a PIC12F1822-n én csak 32 bites aritmetikát használok, nálam is van bőven hely. Csak a menüszövegeket kell szűkszavúan megfogalmazni. C nyelven még nem írtam mikrokontrollerre programot - nem is fogok. Ha nincs programozói gyakorlata valakinek, egy bonyolultabb képlet jelenthet gondot - ott lehet jogosultsága a magas szintű nyelvnek.
(#) Lamprologus hozzászólása Okt 13, 2015 /
 
Mit lehet tenni akkor, ha kifogytam a PIC I/O lábaiból?
A DIP tokozásnál sűrűbb lábkiosztást nem nagyon merném bevállalni.
Létezik-e valami bővítő ami pl I2C-vel vezérelhető, vagy olyan adapter ami emberibb lábkiosztást csinál valami "sűrűbblábú PIC"-nek?
(#) Pali79 válasza Lamprologus hozzászólására (») Okt 13, 2015 / 1
 
Létezik I2C portbővítő: Például ez.
(#) sonajkniz válasza Pali79 hozzászólására (») Okt 13, 2015 /
 
Megnéztem ezt a portbővítőt. Nem is tudom. Én inkább mégegy PIC-et használnék.
(#) Pali79 válasza sonajkniz hozzászólására (») Okt 13, 2015 /
 
Miért is?
(#) sonajkniz válasza Pali79 hozzászólására (») Okt 13, 2015 / 1
 
A feladattól függően a portbővítőnek használt PIC-et akár munkára is foghatom.
Pl: Ha a bővítőn van egy encoder, teljesen lekezelheti, csak az eredményt küldi át. Ha van rajta PWM, csak utasítom, a többit elvégzi. Ugyanígy beolvashat analóg jelet, és küldi az eredményt. Mindössze be kell állítani, melyik adat mi.
(#) Hp41C válasza Pali79 hozzászólására (») Okt 13, 2015 / 1
 
Van az MCP23017 -ből DIP tokozású is.
A ChipCad -nál a MCP23016 -ból is.
(#) nedudgi válasza Lamprologus hozzászólására (») Okt 13, 2015 / 1
 
A ChipCad árul SMD -> DIP adaptereket is.
(#) Pali79 válasza sonajkniz hozzászólására (») Okt 13, 2015 /
 
Na igen, de ha csak 20 ledet vagy 20 nyomógombot tesz rá akkor minek egy drága PIC? Nem írta, hogy mi a feladat.
(#) ktamas66 válasza Pali79 hozzászólására (») Okt 13, 2015 /
 
Én ilyen feladatra egy olcsó picet választottam (16F1513 kijelző). Nem sok különbség van árban a portbővítőhöz képest.
(#) Pali79 válasza ktamas66 hozzászólására (») Okt 13, 2015 /
 
Jólvanna! Nem engem kell meggyőzni...
(#) Pali79 hozzászólása Okt 13, 2015 /
 
Urak!
Szeretnék egy sebességmérőt/fordulatszámmérőt készíteni. Arra gondoltam, hogy a megszokott digitális kijelzések helyett analóg mutatós megoldásban gondolkodom. A kérdés, hogy mivel mozgassam a mutatókat? Gondoltam léptető vagy szervó motorra, de egyikkel sincs tapasztalatom. Az elképzelés szerint kb. 240° -ot kellene mozognia és kellene legyen két végállása.
Ötlet vagy tanács?
(#) sonajkniz válasza Pali79 hozzászólására (») Okt 13, 2015 /
 
Kicsit fura elgondolás, de ha mindenképp ezt akarod, használj modellszervót.
Kicsíped belőle a határolókat, egy ellenállást sorbakötsz a potijával, így átverve a vezérlést a kitérés megnövelhető. A bennük lévő poti általában 270 fokos kitérésű.
(#) Pali79 válasza sonajkniz hozzászólására (») Okt 13, 2015 /
 
És azt hogyan tudom normálisan vezérelni? Ahogy néztem ismertetőket, a magas szint impulzusszélességére fordul. 1,5 ms-re 90°-ot, 2 ms-re megint 90°-ot. De hogy lehet mondjuk csak néhány fokos fordulásra bírni?
(#) sonajkniz válasza Pali79 hozzászólására (») Okt 13, 2015 /
 
Így macerás elmagyarázni, de holnap készítek egy példaprogramot.
(#) cross51 válasza Pali79 hozzászólására (») Okt 13, 2015 /
 
Egy hasznos cikk erről a modell servo-s dologról, hogy milyen jelre milyen helyzetbe mozdul a kar vagy tengely. A néhány fokos fordulatot a nagyjából 1-2ms kitöltésű PWM jel adja meg(kitöltésnek megfelelően fordul), de ezt "cikkben" elég pontosan elmagyarázzák.
A hozzászólás módosítva: Okt 13, 2015
(#) don_peter válasza cross51 hozzászólására (») Okt 13, 2015 /
 
Srácok, LCD-nél 4bit-es üzemmódban nem lehet olvasni igaz?
ST7920-al szenvedek, de úgy látom csak 8bit-es módban lehet olvasni..
Jó látom?
(#) Pali79 válasza cross51 hozzászólására (») Okt 13, 2015 /
 
Köszi, ezt már én is megtaláltam, de nem lettem sokkal okosabb. Nekem az jött le belőle, hogy a gyártmánytól függően 1-1,5 ms magas impulzusra fordul a megadott szögre. Bár egyértelműen leírva nincsen, de elképzelhetőnek tartom, hogy ha egy nagyságrenddel kisebb mértékben változik a magas jel hossza, akkor kisebb elmozdulást produkál.
(#) moltam válasza Pali79 hozzászólására (») Okt 13, 2015 /
 
Gyári megoldásokban kereszttekercses műszert (air core gauge) vagy léptetőmotort használnak. Meghajtó ic. Ilyen műszert tudsz bontani pl egy BMW E34 ből, abban tuti az van azt tudom biztosra. Hoztam a méhtelepről egyet. Gondolom még elég sok autóban előfordul.
A hozzászólás módosítva: Okt 13, 2015
(#) Pali79 válasza moltam hozzászólására (») Okt 13, 2015 /
 
Köszi a tippet! Nekem is a léptetőmotor volt az első gondolatom, bár ahogy olvasgatom lehet a szervóval jobban járok. A kereszttekercsest nem feszegetném inkább.
Következő: »»   709 / 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