Fórum témák
» Több friss téma |
basszus jó lett. Nem lehet a kapcsolot AN0-ra kötni? Mert ugye átálitottam a GP5/osc1-re a progiba a bemenetett és most tök jó. Ezer hála
Szívesen segítettem. Jó programozást a továbbiakban.
Most már müködik a kapcsolgatás. De csak a 2 és 4 lábon.Már csak az lenne a kérdésem hogy hogyan tudom használni a többit is bemenetnek?Hiába állitom a programba bemenetnek.Ez ugye kiderült a szivásom miatt Assemblibe meg C-be láttom hogy hogy csinálják. De itt?
Sziasztok! Valaki nem gondolkozott még azon, hogy csinál egy cikket erröl a progirol? Tetszik nekem is nagyon, viszont fogalmam sincs, hogy hol áljak neki, Esetleg valaki nem tud valami magyar leírást róla? Előre is köszi a választ!
Hát én se értem hogy azok a lábak miért nem mennek.Valamiért szerintem a program nem kezeli megfelelöen.De most beszereztem egy 16F676 azzal tökéletesen megy.Most probálkozok ezzel.
Azt hogy lehet megcsinálni hogy ha a kimeneten világit a led egy ideig és ha világitás alatt megnyomok egy gombot akkor megszakadjon a világitás.Még akkor is ha van még idö hátra.És mennyen a program tovább.
Még egy kérdés. A SLEEP-et hogy lehet bekapcsolni és a WDT hogy lehet konfigurálni?
Annyi változott, hogy 16f676 lett a pic. A pontos timer0 sincs beállitva.Mert igy látom mit csinál.De az lenne a legjobb takarékoskodás szempontjábol ha lefutna egyszer és sleepbe menne és wdt és a manuális kapcsolo felébresztené. Légyszi nézd meg hogy jó e igy a progi.
Köszi
Hát én is. De lehet hogy megtaláltam. Igazad van a timer0 elfelejtettem clockra rakni. De mindegy is mert akkor tényleg rossz volt az egész. De most alkottam valamit jóskáékkal meg giziékkel. Remélem igy gondoltad. Most elméletileg azt csinálja ahogy te leirtad.
Hát tuti, hogy nem jó.Mert nem megy probapanelon.Mindegy kisérletezgetek.
Na sikerült. Bár át irtam mert rájöttem hogy olyat is beleraktam ami tök fölösleges. Most minden tökéletesen müködik probapanelon is.Csak egy dolgot nem értek. Ha a man_kapcsnál a C3 nullázom akkor a nyitás led halványabban világit mint ha a fofügvényböl kapcsolodik.
Hasonloan gondoltan a progit? Találsz benne olyan hibát amivel gond lehet?
Nem kellene müködnie?
Ha a másodperc "s" 3-nál kissebb akkor belép a feltételbe ahol ha 2-nél kisebb akkor a követ kezöbe. Itt ha a zsalu zárva van "nyitva=1" akkor tovább megy és megnézi hogy a "kap=1" ha igen akkor nyit rajta.Ezt 2 másodpercig csinálja mert eléri a feltétel a "s<2".Ekkor elindul a várakozás mig a p "perc" elnem éri a 60-at.Akkor mindent nulláz és kezdödik elölröl. Ugyan ez igaz a másik állapotra amikor teljesen nyitva van a zsalu és akkor zárja. A man_kapcs meg arra szolgál hogy bármikor kitudja nyitni a várakozás alatt és közbe lenulláza a percet is. De ez ebbe még kimaradt. Szóval onnan folytatodik az idő ahol nyitottam. Mi a gond vele? >
Hello!
Hát ez nálam nem megy. Csak villog. Nincs megállás. Ami azon az oldalon van az ugyanezt csinálja ha berakok kapcsolot meg ledet . Viszont azt észre vettem , hogy ott a megszakitásba GP2INT van és nincs semmi a tulajdonságaiba a megszakitásnál. Amit te küldtél abba meg RB0INT és ott ugye az INT megszakitás van. Most a programom szorakázik? Vagy nem értem mi van. Ja és ha az eredeti programba az int_handle makroba megváltosztattom az idöt pl. 5 másodpercre akkor ha megnyomom a gombot akkor 5 másodpercre feljön az a ablakocska amin számol. De a te progidba ezt nem csinálja. Amugy bocsi ha nagyon lefárasztalak.
Lehet, hogy akkor az a baj. Mert nekem 4-es van. De kiprobálom 3-assal.
3-as portableval nem megy.Nekem csak ez a 3-as van
Akkor a te verziod is 4-es. És nálad megy amit küldtél?
Na megcsináltam a 3-as portable verzioba de itt is folyamatosan megy a villogás. Csak akkor csinál valamit ha azt csinálom amit már irtam a késleltetés átirással. Akkor reagál a gombra. Ha 4-be csinálom meg az egészet ott semmi nem történi nálam. A villogáson kivül. A kapcsolos dolog se megy. :no: Hát érdekes ez nekem
Nyisd meg szövegszerkesztőben /FCD/12F675.fcd-t.
Írd át RB0INT-et GP2INT-re (2 helyen). Utána működni fog.
Sajna az bent van melohelyen. Csak hétfön tudom élöbe kiprobálni.
Hát tegnap kicsit elnéztem a dolgot. Azt hittem péntek van . Na nekem is müködik 16F676-on Szépen elalszik meg fel is ébred. Már csak ezt a timer1 dolgot kell megnéznem. De ma sajna csak erre volt idöm.
Hát igen nekem nincs olyan állitási lehetöség. Ha jól olvasom az adatlapba 72 ms van reset. Timer1-be is fellehet ébreszteni. De azt hogy kell beállitani ugy hogy tulcsorduláskor ébresszen?
timer1 Itt irja csak kinai
Sziasztok!
Egy kis segítséget szeretnék kérni. TMR1-es megszakítást szeretnék csinálni pl. 16f877-es procin, de úgy, hogy egy adott, előre kiszámolt és a tmr1h és tmr1l regiszterekbe beírt értékről induljon a tmr1, és túlcsorduláskor szakítson meg, majd ez az érték újra töltődjön be és így tovább. Külön makrót kell erre definiálni vagy a meglévőkkel is meg lehet csinálni? előre is köszi
Szia!
Megnéztem,de c-ben valami ilyesmi lenne: //tmr1-et inicializaljuk //timer uzemmodban, belso clock T1CON.TMR1ON=1; T1CON.TMR1CS=0; //belso ora, foszc/4 20/4=5MHz 0,2 usec T1CON.T1CKPS0=1; T1CON.T1CKPS1=1; //elooszto 1:8 5MHz/8=625kHz > 1,6 usec //625 a tmr1-ben 64911 FD 8F INTCON.GIE=1; //global interrupt enable INTCON.PEIE=1; //peripheria int. enabled TMR1H=0xfd; TMR1L=0x8f; --------------------------idáig inicializálás -----------itt a megszakitas void interrupt() { if (PIR1.TMR1IF==1){ //tmr1 szakitott meg? 1 msec letelt //t1_cnt++; TMR1H=0xfd; TMR1L=0x8f; PIR1.TMR1IF=0; //timer1 int torlese if (t_lcd>0) --t_lcd; ....és így tovább... : ))) mivel a flowcode-ban nem tudok kihozni pontos időzítést 20 MHz-ről, ezért gondoltam, hogy c-ben megszokott módon előre beállítom a tmr1-et, szépen elkezd inkrementálni, majd meszakít, így pontos 1 msec-os megszakítást tudok létrehozni. Egyébként proci regiszterekhez hogy lehet hozzáférni? pl. értékét áttölteni változóba? Köszi
Szia!
nekem sajnos 20 MHz-es kvarcom van. A Flowcode pedig a virtuális perifériák miatt tetszik, ismerkedni akarok vele, bár van próbapanelem is, de így gyorsabban tudom kipróbálni. Böngészem még egy kicsit a Matrixmultimédia fórumát, hátha megvilágosodom... De köszönöm a segítséget... Ha felfedezek valamit, majd megírom.
Egyébként amit szeretnék:
- pontos 1, 2 , 4 stb msec-os megszakítás - a megszakítási rutinban csökkentem egy változó értékét -ha ez nulla, végrehajtom a taskot, pl. lcd task és visszaállítom a változó értékét -pl.150 msec-onként lcd-re kiiratás, vagy 50 msec-onként billentyűzetleolvasás ehhez kellene a tmr1-hez hozzáférni, ami az előbbi c kódban sima ügy.
Sziasztok!
Nektek megy a tmr1 megszakítás szimulációban? Nekem pl. a led nem villog, csak pl. a tmr0-ról. De a próbapanelon meg jól megy, a fordítás úgy néz ki, jó.
Szia!
Köszi, érdekel. Közben én is találtam infókat a "Custom Interruptokról", most próbálkozok vele, én is felrakom, ha lesz rá érdeklődés. Üdv
Szia!
A T1SYNC engedélyező bitet, hogy tudom 1-re állitani? A TMR1CS 1-en van. Aszinkron modba szeretném kapcsolni a timer1-et.
Nem watchdog. Azt kilötem. A timer1-el akarok egy megszakitást, hogy ébresszen. De csak akkor ébreszt ha ez a bit 1-en van. "aszinkron módba" De ez eddig nem sikerült. Azért köszi
Az a baj hogy néztem.
//Megszakítás //Megszakítás: Engedélyezés TMR1 intcon.PEIE=1; t1con.T1OSCEN=1; t1con.TMR1ON=1; t1con.TMR1CS=1; t1con = t1con & 0x0F; intcon.GIE=1; pie1.TMR1IE=1; Csak itt nin olyan. És sehogy se tudom ide becsalogatni. Azzal lehetne tiltani a külsö órajel szinkronizálást. Mert csak akkor lessz a timer1 aszinkron modba. Gondolom te se foglalkoztál még ilyennel.
Hát sajna nem nagyon.Itt kaptam egy ötletet
[quote]PIC16F676 és MPASM esetén így: BSF T1CON,NOT_T1SYNC (ilyen bugyuta nevet adtak a 2. bitnek, hogy NOT_T1SYNC, a P16F676.INC állományból lehet kilesni.) De ez igy biztos nem megy. A boost C include mappába a 16F676.h-ba van egy ilyen definicio "#define NOT_T1SYNC 0x0002". De ha ezt berakom c-be akkor semmi extra nem történik. |
Bejelentkezés
Hirdetés |