Fórum témák
» Több friss téma |
Valami hasonló példaprogi nincs véletlen mert még timert sem használtam soha ez így nagyon nehéz lesz.
Mert hiányoznak az alapok és kapkodsz. :yes:
Ha valaki ezt meg tudja csinálni szerintem ez egy hatalmas lépés mert akkor már elég összetett feladatokat is meg lehetne oldani.
Mert van egy progim amit tovább szeretnék fejleszteni! Amit még nem csinált az ember és szeretne vele megismerkedni azt kapkodásnak hívod?
És akkor mond már meg hogy azokat a híres alapokat hol lehet megtanulni?
A hiba az ön készülékében van... A programod az MpLab szimulátor szerint azt csinálja, amit terveztél...
Nem most kapkodsz, hanem általánosan. Nem bántásként mondom, hanem azért mert nincs alapozásod, de te már a tetőn lévő réz szélkakast építed. Igenis az alapoktól kell kezdened, nem kitapasztalni a dolgokat. Miért kell a ledvillogtatással kezdeni? Azért, hogy meg tudd csinálni megszakítással, minden késleltetés nélkül és ezáltal megértsd a timerek (és a többi periféria) működését, konfigurálását. Igyekszem segíteni, de ez így egyet előre, kettőt hátra.
Ez így rendben is van. Fogalmam sem volt a timerek fontosságával mert eddig mindig csak késleltetéseket használtam és a legtöbb példaprogramban a led blinking delay-el van megoldva és ezért én is ezzel csináltam mint kezdő ha ők úgy csinálták akkor biztos az a jó.
De nagyon szivesen megtanulom ezeket a dolgokat csak mondjatok valami értelmes magyar nyelvű leírást ami minroc-ben szemlélteti a példákat mert assambly-hez egy mukkot sem értek.
Sajnos ilyen könyvet vagy e-bookot sehol nem találtam.
Szia!
- A programodat írd át úgy, hogy az idő kijelzés megszakításosan 1 másodpercenként történjen. Segítség: a timer2 felprogramozható periódusos megszakításkérésre, de sokkal gyorsabb (sajnos), mint az 1 megszaítás/másodperc. A programbe felvéve egy belső változót, adott számú timer2 megszakítás kérés után kell csak a kijelzőt frissíteni. - Minden percben adott másodperc után írja ki a hőmérsékletet 10 másodpercre. - stb. Egy 20MHz -es 16F628A a propeller órában számolja az időt, vezérli a kijelzést, méri egy fordulat idejét, dekódolja az infra parancsokat, és mozgatja a kijelzőn a szöveget, menti a beállításokat egy I2C RTC -be... A Wand órában egy 20MHz -es 16F886 ezen kívül méri a hőmérsékletet, a páratartalmat, a tekercs áramát, vezérli a LED -ek fényerejét és soros vonalon kapcsolatot tart a PC -vel.
Úgy gondolom erre gondolsz
??
Örülök neki, hogy Nálad megy. Én beégettem, mértem szkópal, és láss csodát, nem megy. De mivel olyan dolgot írtatok ami számomra érthetetlen,
Idézet: „ de a számábrázolást nem előjelesre (unsigned) kellene állítani...” (vagy csak kezdem elérni a tegnapi idegállapotoma), úgydöntöttem előröl kezdem a PIC tanulást. Vissza az asm alapokhoz, szép nyugottan. Ja még egy kis adalék, hogy ugyanezt a progit beraktam 16f882-be és ott szépen ment, úgy ahogy Nálad a szimulátorban.
Ami még emgem érdekelne hogy a cnt változó ha 32 mivel növeljük honnan tudom hogy mennyi idő alatt éri el a 32-es értéket a cnt változó, így hogy lehet pontos időzéteseket csinálni? Mondjuk nekem egy 1 másodpercenkénti kiolvasásra van szükségem?
Idézet: Egy részét a honlapomon, például a PICCOLO projektben. Az Időzítők/Számlálók c. fejezetben sok mindent leírtam a Timerek kezelésével kapcsolatban, s a ledswitch_tmr0.c programban arra is látsz példát, hogy hogyan lehet a Timer0 megszakításokat felhasználni a nyomógomb bemenet pergésmentesített kezelésére (mintavételezéssel) és a LED villogtatásához szükséges késleltetések előállítására. A véges állapogépek használatából is kapsz egy kis ízelítőt, s ezzel megvan az eszköztár egy egyszerű többfeladatos alkalmazás összeállításhoz. A példaprogramban a konkurens folyamatok a nyomógomb figyelése és az ennek megfelelő állapotváltás, valamint a LED villogtatása (ha a BLINK állapotban vagyunk). „azokat a híres alapokat hol lehet megtanulni?”
- A TMR2 -be nem kell 0-t írni, maga a timer törli. A programból való törlése elrontja az időzítést!
- A TMR2 megszakítások mindig egyenlő időközönként keletkeznek. A megszakítási rutin számolja a kiszolgálások számát, ha eltelt a megfelelő számú, egy jelzőbittel jelezzen, a számlálót törölje. - Ha a jelzőbit 1, akkor frissítjük a PORTB -t vagy az időt az LCD -n és töröljük a jelzőbitet. A változás a PORTB -n vagy az LCD -n pár utasítás végrehajtási idővel késik, sőt nem egyforma még a késések ideje sem, de ez a késés nem halmozódik. Egy 1 másodperces frissítésnél néhány (10 .. 100) us késés nem okoz problémát - főleg, ha ember olvassa le... Ha a programozott késleltetéssel csinálod az idő méréset, a beállításhoz szükséges utasítások végrehajtásának idejével késik az idő számítása, több állítás ideje halmozódik...
Sziasztok.
Remélem nem lövök nagyon mellé, ha itt kérdezem. Terveztem egy áramkört 877A-val, és szeretném tudni, hogy ez így fog-e működni, vagy hol kell módosítani rajta?
Rajz v. program?
......így más. Úgy látom nincs gond vele.
Szia!
Mikor aktívak a vezérlőjelek? Most akkor indul, ha a bemenet 0. Nem az történik, hogy az indító bemenet 0, ezért elindul, felmegy 160-ig, megnézi, hogy a leállító bemeneten milyen szint van, az is 0, elindul lefelé, elér 0 -ig és mivel az indító bemenet még mindig 0, így megy egy újabb kört... Van felhúzó elleállás a PORTA 0 bitjén, illetve a PORTB 0. bitjén - avagy ezen a belső felhúzó ellenállást bekapcsoltad. Szerintem a 16F882 -es verziónál megvan a felhúzás...
Lehet hogy nincs igazam de a 8 led 1 lábra nem fogja nagyon melegíteni a picet, ha mind a 8 világít?
Még 100nF a pic másik pár táp föld lába közé, és a nagy LED áramok miatt 100µF elektrolit is kell a táp csatlakozóhoz. A panel tervezésénél ügyelni a következőkre:
- A pic belső táp és föld összekötésén ne menjen át áram, a pic alatt vezetékkel összekötni. - A led -ek földáramát külön vezetékkel a táp csatlakozóra kell vezetni. Sokszor segít a programok beüzemelésénél, ha belső változók értékét, a program állapotát hozzáférhetővé tesszük. A 16F877A debiggolható, de mégis egyszerűbb a következő megoldás. Az uart segítségével a programból a PC -re lehet juttatni állapot információkat (későbbiekben parancsokat lehet fogadni a PC -től). Prototípus esetén érdemes az uart kivezetéseit e célra fenntartani, amig szükséges / lehetséges...
Ezt most nekem szántad?
Ha igen, akkor a kérdés: 2 db 100 nanós kerámiát tegyek be?
Max. 2 fog egy időben világítani egy lábról.
Szia.
Igazad volt, és elnézést a sok értetlen kérdésért. A program tökéletesen működik, mint ahogy montad " A hiba az Én gépemben van", vagyis PIC-ben. A PIC volt a ludas, egyszóval kuka. Elővettem egy másik 628-at, és minden mint a karikacsapás.És ezen görcsöltem két napig, a nagy semmiért. Az érdekes, hogy még a Pickit2 sem szólt, hogy rossz a PIC. A rossz PIC-be raktam egy olyan progit ami a PortB 0-t egybe állítja, az eredményt lemértem műszerrel: 2,34 voltot mértem. A felhúzó ellenállásokat direkt kapcsoltam be. Azért sajnálom a szétvert bill.-t Viszont egy problémám még lenne. Mégpedig, amikor elindítom a progit az első TMR0 túlcsordulás túl későn érkezik, és ez igy nem jó. Hogy tudnám megcsinálni, hogy pontossan ugyan akkor legyen az első túlcsordulás mint a második?
Igen, Neked írtam. Minden táp föld lábpároshoz külön 100nF jár! Ha 18 pár lesz egy nagyobb pic -en, akkor 18 darab kell. Nem véletlenül vezetik ki....
Nem egészen értem, hogyan tud később érkezni. Korábban át tud fordulni, mivel a timer mindig jár, akkor is ha a programod vár az indító jelekre. A fel/lefele menet indításakor töröld a TMR0 -t.
Még egy észrevétel: Ha a vonat rendetlenkedik - azaz egy lefelé indítás után lefelé indítás jel érkezik, a programod teljes gázra (246) ról fog visszafelé számolni, és 5 teljes lassulási ciklus után fog megállni. Hasonlóan, ha indítás után ismét indítás következik, 5 ciklus játszódik le.
Így gondoltad?
Megint rosszul fogalmaztam, bocsánat.
Idézet: „Nem egészen értem, hogyan tud később érkezni” Amikor elindul a program, (mértem szkóppal) a legelső TMR0 túlcsordulas, nem arányos a másodikkal, de a második- harmadik stb.. már mind egyforma. Azt tudom ,hogy a timer mindig jár. A hardver: 7db nyomógomb és 7 db reedcső. A program úgy fog működni, hogy ha megnyomják az első gombot, elindul a vonat, a PIC figyeli a reedcső adta jelet, ha megérkezik, a vonat megáll és figyeli a második gombot, és így tovább. |
Bejelentkezés
Hirdetés |