Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szevasztok!
Adott 2db 887-es. Az egyiknek csak a bemeneteit szeretném használni, a másiknak csak a kimeneteit, mint egy adatgyűjtő-megjelenítő. Fogalmam sincs, hogy programozzam le ezt a kapcsolatot. Megköszönném, ha segítenétek!
Minek a tápja?
A programozónak, vagy a próbapanelnak? A programozót közvetlenül a panel tüskesorára dugom, nincs közben kábel. A programozó egy max 0,5 méteres USB kábellel csatlakozik a számítógépre.
A 100n-s kondi rendben van, a többit nem egészen értem. Mint írtam, most tanulom. És eddig ment rendesen. A programozáshoz a PICkit 2 v2.61-es programot használom.
Szia!
Milyen konfigurációs beállításokat használsz? Az RB7 és RB6 lábak irányát hogyan állítod be? Az RB3 milen szinten van a programozás alatt?
Akkor az egyik PIC lábait bemenetnek állítod, a másikét kimenetnek és csinálsz köztük valamilyen kommunikációt ( pl. soros kommunikáció RX/TX lábak segítségével vagy I2C ) !
Ha a haladó kérdések közé tetted fel, akkor ezt látnod kell ! ! Mi az igazi kérdésed ? Steve
Elnézést kérek! Azért tettem fel a haladók közé, mert gondoltam, hogy itt gyakorlott picmániások vannak és tudnak segíteni.
Végül is ez a kérdésem. Egy nyúlfarknyi kis példát kérnék, mondjuk az egyiken bemenet az RB0 és ennek a logikai szintjét másolja a másik pic RB0-ja. Hogy rendelem ezeket egymáshoz, úgy, hogy ha sok bemenetet és kimenetet felhasználok, akkor biztos ennek a picnek erről a bemeneti lábáról annak a picnek arra a kimeneti lábáőra kerüljön a jel és véletlenül se valamelyik másikra. Tehát címzés és kommunikáció a kérdésem. Előre is köszönöm a segítséget!
Áttanulmányoztam mindet, legjobban az általad említettek tetszenek, de nem zárhatom ki az USART-ot sem. Egyediként programoztam már ezeket a típusokat meg a 877-et. Azzal semmi gond nem volt. De kommunikációval még nem próbálkoztam.
Akkor először próbáld ki a kommunikáció kezelését, ha ez megy, akkor a többi "gyerekjáték" lesz ! Kezdésnek nézz szét icserny kolléga honlapján : Bővebben: Link, igaz 18-asra készült, de az elvek, ismeretek jól hasznosíthatók, illetve a neten is nézelődhetsz ( a USART szerintem jónak tűnik, bár nem írtál specifikációkat: sebesség, adathossz, adatmennyiség, stb. ) !
Steve
Kösz a linket, élek a lehetőséggel. A sebesség elhanyagolható, lassú állapotváltozásokat kell lekövetni. Így az adathossz és -mennyiség sem számottevő egy időintervallumban. A hosszról jut eszembe, a fizikai távolság két pic között max. 10m.
Hú, ez tényleg nagyon jó anyag. Kösz, nincs több kérdésem ... egyelőre
Üdv!
Az lenne a kérdésem és problémám, hogy hogyan lehet megoldani azt, hogy két program egyszerre, egymástól függetlenül fusson? Ha minden igaz "multithread"-nek hívják ezt de sajnos nem sikerült a lényeget megfejtsem. Ez mennyire bonyolult? Pl két végtelen ciklus egyszerre de egymástól függetlenül történő futtatása. Esetleg valaki egy nagyon egyszerű példát tudna adni? Előre is köszönöm.
u.i: C-ben programozok és CCS fordítót használok.
Egy mikrovezérlőben, vagy más egymagos processzorban két program soha nem fut egyszerre! Sőt egyszerre csak egy parancs hajtódik végre. Ha megosztod az időt két ciklus között, akkor úgy fog tűnni, hogy egyszerre történnek a dolgok. De ez itt a haladóknak topic, eleve a kérdésed abszolút kezdő és nem a PIC miértekbe vág! A témát a CCS topicban esetleg lehet fejtegetni...
Köszi az infót és elnézést.
Megoldható a dolog, hisz már az egymagos procik idejében is voltak multitasking oprendszerek. Természetesen - ahogy már watt is említette - ehhez időosztás szükséges. Tehát fut egy kiszolgáló alkalmazás (supervisor) ami felügyeli és elosztja az erőforrásokat a kiszolgált folyamatok (user) között. Persze az egyes részfolyamatok nem nyúlhatnak szabadon a hardwerhez, mert abból összeakadás lehet. Hogy ezt mennyire egyszerű vagy nehéz kivitelezni az az adott feladattól függ.
A gyakorlatban ez úgy néz ki, hogy a supervisor elindít egy időzítőt, majd átadja a vezérlést a soronkövetkező tasknak, méghozzá pont ott ahol korábban megszakította azt. Ezután ez a folyamat fut addig, amíg a számláló le nem jár és egy megszakítást nem generál. Ekkor a végrehajtás újra a supervisorhoz kerül, aki elvégzi a szüksége feladatokat, majd újra átadja egy időre a ténykedés lehetőségét a következő folyamatnak. Fontos hogy az usernek csak korlátozott lehetősége van, ellenben működésképtelenné válhat a rendszer.
Vegulis a CCS-nek resze a RTOS. Nezz szet a CCS peldatarban. Van meg mas is: OSA. Meg nem volt idom kiprobalni, de ebben elvileg lehet CCS, HT C , C18, MikroC.
Végül átmentem egy általatok ajánlott topikba. Köszönöm mindenkinek.
Én is köszönöm!
A konfig a következő:
LIST P=16F887 ;PROCESSZOR DEFINICIO #INCLUDE ERRORLEVEL 0,-302 ; elnyomja a bank-váltás üzeneteit __CONFIG _CONFIG1, (_LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _MCLRE_OFF & _WDT_OFF & _HS_OSC) ; 0x20D2 HEX formában __CONFIG _CONFIG2, (_WRT_OFF) A PORTB pedig semmilyen szerepet nem játszik a programban. Csak a C és D portok működnek.
Szia!
Ugyan a MCLR le van tiltva, a HS oszcillátor nem indul külső jel vagy quartz / rezonátor nélkül. Áramkörben vagy adapteren programozod? Ezzel a konfigurációval áramkörön kívül (adapterrel) mennie kellene a programozásnak.
Jó napot!
A következő projektemben egy diacon kesztül, amit egy pic pwm-je vezérel, egy triacot vezérelek. De a problémám az egyáltalán nem szép egyeletesen emelkedő fényerősség. Pedig egyesével töltögetem a CCPR1L regiszter. Az effektus inkább villódzás és zavar. Mit rontok el?
Áramkörben programozom, és van külső quartzoszcillátor rajta.
Véletlenül nem tudja valaki, hogy lehet-e, és hogyan ingyenes mintát rendelni a Microchiptől?
Magyarországra évek óta nem lehet. Egyébként meg (az elfogadott országokban) a kiválasztott PIC honlapja aljára kell görgetni, a Prices & Amples részhez. Például: PIC18F4550
Hello!
Közben tovább gondoltam a dolgot. Én nem csak a T1CON-nal babráltam, hanem az OSCCON-nal is. És ott beállítottam, hogy a currens oszcillátor a secondary osc., és azt is, hogy a system clk = pb clk. Szóval TCS=0-val is működnie kellett volna a rendszernek. Vagy tévedek? Köszönettel: szepesg
Szerintem tévedsz. Nézz utána az adatlapban (vagy a Family Reference Manualban), hogy melyik bit mit befolyásol!
A TCS bit azt befolyásolja, hogy Timer1 előosztója melyik jelforrásból kapja a jelet. Az általad említett többi beállítás ezt nem pótolja, hanem kiegészíti. |
Bejelentkezés
Hirdetés |