Fórum témák
» Több friss téma |
Kedves Hp41C, nagyon szépen köszönöm, hogy szakítottál időt problémámmal kapcsolatos tájékoztatásomra!!! Nekem ez sokat jelentett! Üdvözlettel.
Sziasztok! Némi segítségre lenne szükségem, van egy progim ami teljesen jól megy 16F886-on, de most szeretném átírni 16F1516-ra. De nem bírok egy bill. mátrixszal, ami a B portra van kötve. Gondolom a konfignál szúrok el valamit.
A kód:
A kapcsolók kezelése:
A main ide vonatkozó része:
Néha egy egy gombnyomást észre vesz, de hogy melyik számot teszi hozzá az már elég véletlenszerű. Ha beteszem a 886-ot teljesen jól működik. Előre is köszönöm a segítséget!
Bocsi! Megoldódott, sikerült a nWPUEN értékét egyre tenni. Már vagy két órája ezzel harcolok
De aki nem vesz észre egy n betűt meg egy felső vonalat az meg is érdemli.
Szeretnék 16f877A-val sebességet és km-et mérni csak sajnos fogalmam sincs hogyan fogjak hozzá. Hall szenzorral venném a jelet a forgó tengelyről. Ahogy néztem ezt az int lábra szokás vezetni, hogy megszakítást okozzon. De nem tudom az elvet, hogy miként lesz ebből sebesség érték. Mit kell ehhez használni? Valaki lenne szíves pár mondatban leírni az elvet?
Köszönöm szépen előre is!
Itt Bővebben: Link van egy kis leírás.
Igen ezt láttam, de ez AVR-es. Nem tudom mennyire kompatibilis egymással a két dolog.
A mérés elve nem kell, hogy változzon a feldolgozáskor vagy a kijelzésekor.
Bocsi, kicsit pongyolán fogalmaztam: assembly-ben próbálom írni a kódot, ezért nem segít.
Időmérésen alapul a sebességmérés. Időt a CCP bemenettel tudsz mérni.
Ezen elrágódom egy kicsit. De a cikkben ezt írja:
Idézet: és a hall az INT0 lábra van vezetve, ami gondolom szintén külső megszakításra van kitalálva. Vagy nem? „A körülfordulási idő mérése, és a sebesség számolása megszakításokkal történik.”
A CCP bemenetre érkező jel is megszakítást okoz és automatikusan tárolja az aktuális timer állást is. Az adatlapban megtalálható a leírás vagy itt magyarul is.
Köszi, ezt áttanulmányozom, de egy apró bökkenőt látok benne már az elején: a PWM-et már használom belőle.
2 db ilyen modul található az adott picben.
Valóban! Köszönöm a segítséget egyenlőre! Belemerülök aztán meglátjuk mi lesz belőle!
A topicban tilos hirdetni!!!
A hozzászólás módosítva: Jún 9, 2014
Sziasztok!
Kérdés a következő: 16F84-et programoztam fel. A szimulátoron rendesen végigfutott a program. Amikor a fizikai valóságban futtattam, az RB6 port kikapcsolásakor (PORTB.6 = 0) a program leállt, ill. kilépett. Pedig volt még utána kódrészlet, így: . . PORTB.6=0 Delay_ms(4000) PORTB.7=0 . . Már a Delay-t sem hajtotta végre, azonnal kikapcsolta az összes portot. A nyelv, mikrobasic. A hozzászólás módosítva: Jún 9, 2014
Csak tippelek. A "Delay_ms" értéke nem 255 lehet maximum?
Sziasztok!
Egy megszakítást szeretnék írni. Első körben nincsenek nagy igényeim: Haegy adott lábról lehúzom a tápot, akkor kapcsoljon ki egy ledet és mindezt csinálja egy megszakításon keresztül. Írtam némi kódot is, főleg a microchip mplab fgv könyvtárára alapozva. A kód a következő képpen néz ki:
Ezt egyelőre sajnos csak a proteus isis tesztkörnyezetben tudtam kipróbálni, ahol nem működött. Mellékelem a kapcsolást, ahol, mivel már teljesen tanácstalan voltam minden B és C port beli lábat fel-le húzgálok, hátha valamelyik megszakít. Hát nem, nem szakítanak meg. Tud valaki segíteni, hogy mit szúrok el? Előre is köszönöm! Picem: pic18f14k50
Miért van az a sok láb Vdd-re húzva? Bár nem sokat értek ebből a kódból, de az INT láb nem az RB0 hanem az RC0. Külső megszakítást tudtommal azon keresztül szoktak megvalósítani: Bővebben: Link
Előtét nélkül ne nagyon használd azt a ledet...
Persze, nem is használom. Ez csak a szimulátorban van így bekötve.
Csak azért, mert nem tudtam, hogy most akkor melyik lábon lesz megszakítás, így kipróbáltam mindet.
Amit linkeltél (és amit olvastam korábban is) ott is RB0 van. Nos abban igazad van, hogy ezen PIC esetében úgy tűnik, hogy a megszakítás az RC0-n van, de az mplab-os fgv könyvtár szerint csak olyan fgv van, hogy: void OpenPORTB( unsigned char config); (36. oldal)
Érdekes problémám akadt: MPLAB X alatt akarok felprogramozni 16f628A-t. A kód lefordul és programozás közben az alábbi üzenetet dobja:
Idézet: Van Yes és No gomb, de hiába nyomok bármelyikre ugyanúgy nem tölti be a pic-be a programot. Mi lehet a hiba? „Unexpected device ID, expected ID=0x1060, IDread=0x0, do you want to continue?”
Tápot adtál a kontrollernek? a programozó lábak kimenetre állítása előtt tettél be késleltetést?
A hozzászólás módosítva: Jún 10, 2014
Nem csináltam semmi ilyesmit, ahogy eddig sem. Létrehoztam a projektet, hozzáadtam egy meglévő asm-et, rányomtam az ikonra amin egy nyíl mutat egy IC felé és kész. Eddig ez mindig működött.
A hibaüzenetet érted? Azt jelenti, hogy nem találja a 0x1060 azonosítójú kontrollert. Ez lehet azért, mert nem kap tápot, lehet azért, mert a táp megjelenésekor kimenetre van állítva a programozó láb, vagy valami nagyon beterheli a programozólábat. Sok más is okozhat ilyesmit, de ezek a leggyakoribbak.
Ezt étrem, csak az okot nem. A pic benne van egy foglalatban, 5 szál vezetékkel össze van kötve a PICKIT2-vel és ennyi. A pic-re kötve semmi sincs. 2 db 628A-val próbáltam, mindkettővel ugyanaz a helyzet.
Az RA4 láb analóg csatornával is osztozik ami magasabb rendű, bár nem néztem az adatlapot, de általában alapból be van kapcsolva ,tehát az analógot kapcsold ki, vagy
használj olyan kimenetet ami nem osztozik analóggal vagy egyéb magasabb rendű funkcióval. A másik, hogy nincs a PIC-ed felkonfigurálva. Nem csak a portot kell beállítani. Órajel, egyebek, bár lehet, hogy a proteus nem igényli az összes beállítást, nem tudom. Ezen kívül nem hiszem hogy mindegyik láb megszakítást tud generálni. Ezenkívül még sok egyébre is fel lehetne hívni a figyelmet, de főleg arra, hogy először olvasd át a PIC adatlapját legalább 5x, aztán a feladatra vonatkozó részeket még külön is, és akkor kezd valami fogalmad lenni miket kell állítgani.Íme az adatlap. A hozzászólás módosítva: Jún 10, 2014
Az mplab ide alatt is próbáltad, vagy csak az x-el?
Az IDE nem működik nálam valamiért, elkezdi betölteni a fordítót és meg is áll az egész. Ezért is használom az X-et, az még eddig működött.
|
Bejelentkezés
Hirdetés |