Fórum témák
» Több friss téma |
Videókban láttam, hogy a PIC16F887 képes a potméter jeleit érzékelni.
Azaz meglehet írni rá olyan programot, hogy 256 különböző jelet érzékeljen potmétertől. Azt szeretném elérni, hogy az RA0-ra kötöm a potmétert, és a RD0-ra meg egy lámpát, ha a potmétert tekergetem, akkor változzon a lámpa fényereje. Erre tudna nekem írni valaki egy rövid Assembly kódot? Nagyon szépen megköszönném.
Szia!
A 16F887 10 bites A/D vel rendelkezik, tehát nem lehetetlen 1024 szint megkülönböztetése sem... A kimeneten való vezérlést pedig a legegyszerűbben a két CCP modul egyikének PWM üzemmódjának felhasználásávan az RC1 vagy RC2 lábon lehet megcsinálni.
Szia!
Nem lehetetlen a táp bekötése sem... Milyen kontrollert teszel majd bele: a 8 lábúaknak és a 16F684, 16F690 -nek az 1. és az utolsó lába a táp. Ha 18 lábút is akarsz bele tenni, akkor valahova középre is le kell vezetni a tápot jumperen keresztül. Ha már ennyi hely van a panelen, egy két potenciométer is felférne.
Valami konkrétabb?
Legalább, hogy milyen parancsokat kell használni. ![]() Jelenleg annyit tudok PIC programozásból, hogy LEDeket úgy villogtatok össze vissza ide-oda, ahogy akarok, plusz szimpla kapcsolókat tudok benne kezelni. de ugye ennek így önmagában, nem túl sok haszna van a való életben. Viszont ha már a potméter kezelését és fényerőszabályzást is tudnék eszközölni, úgy már azért volna értelme is a dolgoknak. Utána akár a LEDek villogásának sebességét is tudnám potméterről vezérelni. ![]()
Nem hinném, hogy egy tipikus analóg szabályzást rákényszerítve egy PIC-es kapcsolásra- a legjobb kiindulási alap lenne a tanulásra. Azért kezdi mindenki a led villogtatással és nyomógombok kezelésével, hogy átlássa az alapvető programírási lehetőségeket és feltérképezze az esetleges "csapdákat". Persze nem lehetetlen megcsinálni amit írsz, de úgy érzem ezt majd a led villogtatás után kéne kipróbálnod. Mindezt szelíd rábeszélésnek szánom, mert mindannyian bejártuk ezt az "utat" és tudjuk, hogy alapok nélkül nehezebb lesz.
Nézd meg az adatlapan az A/D és a CCP modul működését.
Ha assembly nyelven programozol, akkor bármit csinálsz, ugyanazt a 35 parancsot kell használni. PWM-hez is... Ismerni kell viszont a periféria modulok felépítését és vezérlő regisztereit, amit a mikrovezérlő adatlapja ír le részletesen.
PIC16F887-ről lévén szó, sok hasznos dolog megtalálható Milan Verle kitűnő könyvében, ami a Mikroelektronika cég honlapján szabadon elérhető. Ebben a könyvben ismerteti a perifériák felépítését, s a B függelékben mindenre egyszerű példákat is mutat. A Microchip honlapján is érdemes keresgélni, mert a PICkit2 Debug Express példaprogramjaiból (PICkit 2 Debug Express Lessons) is lehet tanulni.
A következő parancsokat kell majd használnod valószínűleg (a lista nem teljes, és még csak sorrendben sincs, a paramétereit pedig lehagytam):
ANDWF IORWF MOVF MOVLW MOVWF BCF BSF BTFSC BTFSS XORWF
Mint írtam már, a LED villogtatással és kapcsolók kezelésével, szinte már végeztem.
Idézet: „majd a led villogtatás után kéne kipróbálnod” Pont ez után vagyok. Szóval jöhetnek a potméterek. ![]()
A Microchip 28 vagy 44 lábú demokapcsolásokban majdnem kész példákat lehet találni.
Például...
Nem vagyok robot...
Itt található egy magyar nyelvű pic kézikönyv... ![]() Lehet én fogalmaztam rosszul. Szóval nekem csak a potméter és a fényerő kezeléséhez szükséges parancsokra lenne szükségem, lehetőleg valami paraméter sem ártana. ![]() Amiket felsoroltál, azok csak szimpla műveletek az adatokkal. ![]() De számomra cél parancsok kellenének, mint pl az ADCON, ADSEL. Idézet: Arra próbáltunk célozni, hogy erre nincsenek külön parancsok. „Szóval nekem csak a potméter és a fényerő kezeléséhez szükséges parancsokra lenne szükségem, lehetőleg valami paraméter sem ártana.” Idézet: Ezek nem parancsok, hanem regiszterek, amelyek az általános adatmozgató bitvizsgáló és bitmanipuláló parancsok operandusai lehetnek. „számomra cél parancsok kellenének, mint pl az ADCON, ADSEL.” Olvasd el figyelmesen, amiket idáig ajánlottunk, s mindenre fény derül!
Amúgy most ugyanazt fogod végigjátszani amit ebben a topikban? Kitalálsz valamit és azt az emberek szépen lépésről lépésre magyarázzák el neked, mert nem veszed a fáradtságot, hogy utánaolvass, keresgélj és mintaprogramok, rajzok alapján próbáld összerakni amit akarsz. 20 perceként beírsz valamit amire -hogy watt kolléga szavaival éljek- majd egy "robot" válaszol, pedig fele annyi idő alatt megkereshetted volna.
Mellesleg a fent említett topikban a végére összeraktam neked a kapcsolási rajzot ami kellett. Több hozzászólás nem érkezett, viszont kitaláltál megint valamit. ![]()
Elnézést kérek a hülye kérdéseim végett, de ez
Idézet: „nem veszed a fáradtságot, hogy utánaolvass, keresgélj és mintaprogramok, rajzok alapján próbáld összerakni amit akarsz” így NEM igaz. Mert igen is keresgéltem fórumokon, meg szimplán a google-ban. De akárhol keresek, nem igen találok választ a kérdéseimre. Lehet azért mert rosszul keresek, nem tudom. Amiket találni is szoktam, az általában vagy egy teljesen másik PIC-hez való (hiába írom be a PIC-em típusát a keresőbe) vagy egy általam teljesen ismeretlen programozási nyelvre van írva. Hsz meg azért nem érkezett a másik topic-ba, mert ugye, ott említettétek, hogy jobb lenne az alapoktól kezdeni és hát elkezdtem az alapoktól. Aztán ha elérek arra a szintre, akkor folytatom azt a topic-ot. ![]() De sajnos a hiányos angol tudás, és az eddigi Visual Basic-es tapasztalatok miatt kicsit nehézkesen haladok. persze van VB-s compiler is PIC-ekhez, de arra aztán még kevesebb a találat a keresőben. Úgyhogy PIC téren maradok az Assembly és a CSS C nyelvél. De először az Assembly-t akarom érteni.
Ugy megy, hogy az AD az egy ugynevezett periferia a PIC-ben. Az azt jelenti, hogy te a regiszterekben (ezek tulajdonkeppen speci memoriacimek, akiket altalaban a byte-on belul bitenkent kell ertelmezni, mintegy egymas melle vannak csomagolva mast-mast jelento bitek, ezt az adatlapban latod) pl. ADCON0,1,2 beallitod a parametereket, utana az egyik regiszter egyik bitjevel bekapcsolod a konverziot es varkozol. A PIC egy masik bit 0-ra allitasaval jelzi, hogy kesz van es utana masik regiszterekbol (ADRESHI, ADRESLO) kiolvashatod, hogy mi lett az eredmeny.
Tehat eloszor az ADCON-okkal beallitod, hogy - milyen referencifeszultseggel akarsz dolgozni - milyen pontossaggal dolgozzon (menyi ideje van konvertalni) - honnan akarod beolvasni, melyik AD labrol - azt az AD labat analognak kell beallitanod - jobbra vagy balra legyen igazitva a vegeredmeny - stb, ennyi jutott az eszembe - bekapcsolod az AD-t az egyik bittel. Utana az egyik ADCON bittel inditod GO/DONE bit=1. Addig varsz, mig ez a bit ujra 0 nem lesz, addig egy onmagaba visszatero ciklusban ujra es ujra lekerdezed. Ha vegre 0 lett, akkor kiolvasod az adreshi es adreslo regiszterekbol az erteket. Szinte mindegyik azonos szamu picben ugyanugy mukodik az AD, szoval nem kell PIC specifikus kodot keresned. Kezdonek jobb a 18F-es mert egyszerubb a regiszterkezelese, nem kell a bankokkal is bohockodni (a bankokkal a valo eletben is csak a baj van) ![]() Angolul azert olyan szinten erdemes lenne megtanulnod, hogy megertsd az adatlapot. Nem bonyolult.
Azt nem ertem miert kell ennyit kinlodni ezzel! Az eredeti tervet kinyomtatod, es mar lehet is a PCB-t gyartani. En csinaltam egy par szaz probapanelt ezen terv alapjan, es idaig senki sem panaszkodott a minosegere. Egy oktatasi intezmeny volt a megrendelo.
Szia.
Volt egy kis időm.( amíg pihen a shtill ) Idézet: „Próbáld leírni, hogyan közelíted meg a kérdést!” Megpróbáltam. Összeállítottam egy sémát, ami alapján (ha jó) könyebb lesz leprogramozni a számlálót.
Szia!
Én is iszonyat kezdő vagyok,és megnéztem a "könyvet",amit be linkeltél.Nagyon jó! Szájbarágós.. ![]()
Sziasztok. Ezidáig AVR-eket programoztam C-ben. Most valószínű az elvárások miatt szükségem lessz PIC-re is fejleszteni néhány dolgot. Azt szeretném kérdezni, attol akinek mindkettőben van tapasztalata, hogy mennyire problémás beletanulni a PIC-ek programozásába, C nyelven, hogyha van elég jelentős tapasztalatom AVR-ek terén?
Köszi, hogy megcsináltad ezeket ! Más hiba nincs?
![]() ![]()
Tudom, de nincs megfelelő fúroszáram hozzá, meg túl kicsinek találtam a forrpontokat. Remélem nem gond a terv...
![]()
Őőő, a egy kicsit változtattam, ezen kéne javítani, ha van még hiba..
![]()
Nincs mit... A furatmátrix feletti részen levő dupla pontsor kiosztása nem 2.54 mm. Nehogy későn lepődj meg, ha ide valamilyen csatlakozót szeretnél betenni (lcd, stb). A függőlegesen álló ledek fetett - mellett elférne egy - két trimmer potenciométer is.
Jaaaa, értem..
![]() ![]() ![]()
Sajnos a PIC melletti is aszimmetrikus. (gondolom az átvezetés helyhiánya miatt...)
Szia! Köszi, hogy ránéztél
![]() Őőő, az nem baj, hogy ott is van hézag, mert oda nem megy bele majd csatlakozó, oda drótot fogok forrasztani... ![]()
Azt hittem, hogy szabványos méretű tüskesort(/ aljzatot) használsz a ráillesztendő modulokhoz. Nekem az lenne a logikus.
Sziasztok, egy 18f4550-es picel vezérlek egy lcd kijelzőt. Működik is a C portján. Viszont ha a B portjára rakom akkor már nem. Úgy gondolom hogy a configurációs bitekkel lehet a gond vagy nem?
Tud valaki valami megoldást rá? Ha kell akkor leírom a config biteket.
Igen, de oda nem kijelző, se semmi se fog menni, oda drótokat fogok tenni, mert szerintem az lesz oda a praktikus..
![]() ![]() ![]() |
Bejelentkezés
Hirdetés |