Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   530 / 1319
(#) elektroláma válasza elektroláma hozzászólására (») Júl 16, 2009 /
 
Ez a prellezés, vagy mi?
Ezen a képen már értem, miért lenne gáz a dolog. Ők delay-t csinálnak, és úgy oldják meg. Az nekem nem jó.
Ha timer-t indítanék, és megszakításkor visszaállítan egy bitet, az egy gombra jó lenne. A többit meg valahogy máshogy kezelem le. Mielőtt a keresést ajánlanátok, ok, megkeresem
(#) elektroláma válasza potyo hozzászólására (») Júl 16, 2009 /
 
Igaz.
Felengedésre gondoltam, de az se pontos. De sztem pontosabb, mint a lenyomás.
Akkor marad a ciklusonként növelek egy számlálót, és ha elérte a maxot, akkor van lenyomva, majd felengedés után megint nem figyelem x ciklusig a lenyomást.
Ha jól látom, végülis a 100nF-es kondit használta erre. Sztem ezt kihagyom.
Viszont interruptos pullup nélkül kell a 10k-s le, vagy felhúzás.
(#) potyo válasza elektroláma hozzászólására (») Júl 16, 2009 /
 
Ne a kapcsolást nézd, hanem a hozzá írt kódot! A 100nF más miatt kell.

A belső felhúzó meg megintcsak független attól, hogy engedélyezed-e azokra a lábakra a megszakítást. Ne köss össze olyan dolgokat, amik függetlenek egymástól, csak lehet együtt is használni azokat.
(#) elektroláma válasza potyo hozzászólására (») Júl 16, 2009 /
 
Ok, nem tudtam. Az interrupt részen volt az adatlapon, és intcon2-n lehet állítani, gondoltam nézi a megszakítást.
Késő van már, kapcsolást írtál, én meg csak azt néztem gondolkodás nélkül.
Köszi!
(#) elektroláma válasza elektroláma hozzászólására (») Júl 16, 2009 /
 
Találtam még egy csomó megoldást tárolókkal, stb, de fölöslegesnek tartom. Progiból elég lesz.
(#) potyo válasza elektroláma hozzászólására (») Júl 16, 2009 /
 
Feleslegesek, mert azért van a kontroller, hogy az megcsináljon mindent, amit csak lehet. Az én kapcsolásomban is azért kellett az RC szűrés, mert a bemenő jelek hosszú vezetéken érkeznek, és szűrés nélkül ez további problémaforrás volt. Az RC szűrő - bár csökkenti - nem szünteti meg a prellegést teljesen, tehát nem lehet RC szűrőn keresztül sem egyszerűen megszakításként kezelni a gombnyomást.
(#) norby1 hozzászólása Júl 17, 2009 /
 
Sziasztok! Segítségeteket szeretném kérni. Hitech PICC -vel ismerkedek. A C kódban, pontosabban egy függvény belsejében elhelyeztem egy kis asm kódot.
A kérdésem az lenne, hogy a függvénynek átadott paraméterre,változóra hogyan hivatkozhatok az asm kódban?
(#) Hujikolp hozzászólása Júl 17, 2009 /
 
Üdv!

Ha a kvarc nincs a pic közelében az mennyire baj? Ugyanis ott nem fér el, máshova kell tennem. kb 3cm-re tőle. Huzalvezetés milyen legyen? Maradhat "tört" nyugodtan, vagy legyen kerekek?
(#) lidi válasza norby1 hozzászólására (») Júl 17, 2009 /
 
A hitech manuáljában benne van !
(#) norby1 válasza lidi hozzászólására (») Júl 17, 2009 /
 
Természetesen NEM rögtön ide írtam a problémámat, hogy majd kezembe adjátok választ, hanem először átolvastam a manual erre vonatkozó részét. Ott azt írják, hogy az asm kódban a változó elé egy aláhúzás jel kell ( _ ). Én is úgy csináltam a függvényben, de mégsem fordul le. Csak megjegyzem, hogy a függvény, a paraméterben átadott számnak megfelelő mikroszekundumig vár 20Mhz mellett, de ez biztos egyértelmű számotokra
(#) MPi-c válasza norby1 hozzászólására (») Júl 17, 2009 /
 
Szerintem az a "movlw _us" nem azt fogja csinálni, amit te akarsz!
(#) lidi válasza norby1 hozzászólására (») Júl 17, 2009 /
 
Ez igy nem jó, mert a függvény paraméterre biztos másként kell hivatkozni. De küldök neked inkáb olyat ami működik. Én ezeket szoktam használni. Főprogramodba elég beírni hogy #include "delay.c"

delay.zip
    
(#) lidi válasza norby1 hozzászólására (») Júl 17, 2009 /
 
Vagy próbálkozhatsz még persze : Bővebben: Link
(#) norby1 válasza lidi hozzászólására (») Júl 17, 2009 /
 
köszönöm a segítséged, inkább tényleg azokat a függvényeket használom amit küldtél
(Bár utólag rájöttem, hogy valahogy globálisan is kellett volna definiálni azokat a változókat a kódomban, úgy lefut, de nem annyit vár, amit én beállítok. mind1is )
(#) watt válasza norby1 hozzászólására (») Júl 17, 2009 /
 
A legnagyobb probléma mellett pedig elmentél, biztos azért, mert az volt a legrövidebb válasz, és gondoltad az nem számít!? Nézd meg mire való a MOVLW (adatlap)!
A változó deklarálásban is van még gond biztos, de én nem használom ezt a C-t. De az szinte biztos, hogy ASM betétben csak bájtos(8bites) változókat lehet használni, vagy gondoskodni kell arról, hogy egy hosszabb változó esetében, annak melyik bájtját akarod piszkálni. Erre jók a >> << operátorok, vagy a közvetlen, vagy indirekt címzés.
(#) norby1 válasza watt hozzászólására (») Júl 17, 2009 /
 
Szia! Nos, tényleg elsiklottam a válasza felett, de a következő miatt. Elfelejtetem megemlíteni, hogy a függvényem csak bájt hosszúságú, max 255 értékű számot kapna. Ugyanis a várakozás függvényt 1-wire eszközöknél használnám fel, ahol a leghosszabb várakozás (480us reset impulzus) is csak 2 ilyen függvény egymás után. Mivel már foglalkoztam ASM-el, úgy gondolom, hogy a MOVLW azt a bájtot a W munka regiszterbe fogja beletenni úgy ahogy van (vagy ennél nem?)... C18 programmal minden szépen működött, de átszerettem volna írni egy 16F628-ra és egyben megtanulni egy 16F-esekhez kitalált C nyelvet. Utána olvasgattam, sok helyen a hitech picc -t ajánlják azoknak, akik inkább az assembly kódot kedvelik és csak a rengeteg gépelést akarják megspórolni maguknak. Bár még szemezek a CCS fordítóval is, esetleg te azt használod?

bocsi, utólag, de nem utolsó sorban megköszönném MPI-c -nek is, hogy foglalkozott a kérdésemmel!

Ebéd után lehet nekiugrok megint a kódomnak, kitisztult fejjel
(#) Braf válasza norby1 hozzászólására (») Júl 17, 2009 /
 
Idézet:
„Mivel már foglalkoztam ASM-el, úgy gondolom, hogy a MOVLW azt a bájtot a W munka regiszterbe fogja beletenni úgy ahogy van (vagy ennél nem?)”


A movlw utasítás a MOVe Literal to W. A literal az állandót jelent. Gyakorlatilag most a változód címét mozgattad a W be.
Amit te keresel az a MOVe File register utasítás: MOVF cím,W vagy MOVFW cím .
(#) watt válasza norby1 hozzászólására (») Júl 17, 2009 /
 
Én C18-at használok.
Braf elolvasta helyetted is a doksit! Jobban jártál volna, ha magad jössz rá! Szóval javaslom, ugorj neki mégegyszer! Használd az MPLAB szimulátort is, mert abból rögtön látszik, mi történik!
(#) norby1 válasza watt hozzászólására (») Júl 17, 2009 /
 
Köszönöm szépen mindenkinek a segítséget!
Teljesen világos, hogy mit rontottam el. Hisz a movlw egy konkrét számot tesz be a W regiszterbe, míg a movfw egy változót,regisztert. Nem is tudom, hogy nézhettem el ennyire!
(#) watt válasza norby1 hozzászólására (») Júl 17, 2009 /
 

Go tovább!
(#) icserny hozzászólása Júl 17, 2009 /
 
Úgy látszik,másnak is eszébe jutott, hogy kellemesebb a PIC18F14K50-et használni, mint az FT232RL-t forrasztani, vagy valamelyik ATtiny-vel szoftveres USB illesztőt játszani. Az egyik japán honlapon arról számolnak be, hogy egy Arduino-kompatibilis kit-ben USB-UART átalakítóként PIC18F14K50-et építettek be.



Bővebben: Link
(#) potyo válasza icserny hozzászólására (») Júl 17, 2009 /
 
Idézet:
„Úgy látszik,másnak is eszébe jutott, hogy kellemesebb a PIC18F14K50-et használni”


Meg olcsóbb is, ha jól rémlik az FT ic ára...
(#) watt válasza potyo hozzászólására (») Júl 17, 2009 /
 
És ha HID Custom kerül bele, akkor ezerszer kényelmesebb is a használata. (Az USB-s topicban bővebben).
Én sokat szívtam az FT-k drivereivel. Főleg a több különböző eszközt is telepíteni kellett, mint pl, KWP2000, és Galetto1260. Nem nagyon tűrik egymást...
(#) trudnai válasza Csaplar hozzászólására (») Júl 18, 2009 /
 
Szia,

Ha messzirol is jol kell latszodnia akkor nem lett volna jobb a 25 mCd-set valasztani inkabb? Amugy csatlakozom az elottem szolokhoz, rengeteg peldat lehettalalni LED kijelzo multiplexelesere, ha mar van egy probapanelen egy aramkorod es nem mukodik akkor nyilvan szivesen segit mindenki a hibakeresesben -- ha PIC firmware problema akkor nyilvan elsosorban ebben a topicban.
(#) elektroláma hozzászólása Júl 18, 2009 /
 
18F4550 gondok újra.
Portb 4-7-ig tennék rá 4 gombot. Pullupenable biteket 1-re állítottam(intcon2.7), és RBIE=0.
ADCON1=0F
TRISB=%11110000
LATB=0
Testbit(portb,4)=1-el vizsgálom, és nem megy.
Ilyenkor hogy kell rákötni a gombot? Simán GND-re, vagy 10K-val fel kell húzni 5V-ra, és a gombot GND-re?
(#) potyo válasza elektroláma hozzászólására (») Júl 18, 2009 /
 
Idézet:
„Testbit(portb,4)=1”


Az = az értékadás jele. Az összehasonlítás jele az ==.

Egyébként C-ben az ilyet nem így szoktuk, hanem egyszerűen if (Testbit(portb,4)) { ... }
(#) elektroláma válasza potyo hozzászólására (») Júl 18, 2009 /
 
Lehagytam: mikrobasic
A timer-es ledvillogtatás jó lett ezzel.Az meg mindegy, hogy alapban 1, vagy 0, változásnál a porta egyik ledjét változtatná, de nem teszi. Az jól van konfigolva, mert előtte mást teszteltem rajta, és az ment.

Ami nem tiszta, az a pullup enable bit. Low pullupja van, vagy mi. Lehet felhúzom inkább magam 5V-re 10k-val, és kikapcsolom a pullupot.
(#) elektroláma hozzászólása Júl 18, 2009 /
 
ez egy nagyon jó link kezdőknek.
LCD, timer, interrupt, A/D converter, stb.... kapcsolásokkal.
Ott van az RC tag is, meg a flip-flop is.
Gomblenyomás figyelésre a progi úgy írja, hogy többször nézz rá az állapotra, és ha már többször uaz volt, akkor megcsinálod, amit kell. Ott volt az idő is.
Én fordítva csinálom. Ha jön egy jel, akkor nem nézem x ciklusig(~300ms), aztán megint figyelem. Így pont abban a pillanatban fut le, amikor elkezdték megnyomni(vagy felengedni).
(#) elektroláma válasza elektroláma hozzászólására (») Júl 18, 2009 /
 
Itt is van egy példa, ahol a belső felhúzást használja, és simán gnd-re van kötve a kapcsoló.
A doksi azt írja, hogy ha a portb lesz egy kimenet, akkor a pullupot kikapcsolja. Csak arra az egy lábra, vagy az egész portra? Mert azon megy az I2C is. Azon meg eleve van külső pullup.
Mind1, most marad a külső pullup, csak ha legközelebb használnám...
(#) elektroláma hozzászólása Júl 18, 2009 /
 
Ráforrasztottam egy iscp connectort a lapra, mert már untam a folyamatos icáttevést.
De most se megy
Felhúztam 5V-ra, 10K-val, a gomb a 10k és a pic között van, és gnd-re van kötve a másik fele. Jól van bekötveSzerintem valami gond lesz.
Lemértem a portb.4-et, ha nincs benyomva, ~5V, ha be van nyomva, 0V.
Következő: »»   530 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem