Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   76 / 360
(#) silent15 válasza kkrisz75 hozzászólására (») Okt 31, 2012 /
 
Hú... köszi ezt a kimerítő választ, már az első 10 sorban kezdett összeálni, sokkal jobban meg tudod fogalmazni , mint a netes leírások, most elmegyek itthonról, de utána kipróbálom, köszi!
(#) kkrisz75 válasza silent15 hozzászólására (») Okt 31, 2012 /
 
Az sem bonyolult amit ott írnak csak binárisan kell gondolkozni.
vagyis a bináris számrendszerhez képest kell a ledek lábait bekötni, így ha bináris számokban számolsz akkor a kimenetet tudod úgy használni.
Viszont nekem az nehezebb volt elsőre. Jól lehetett volna használni a 7 szegmenses kijelzőnél, és nem kellett volna ekkora pakkot tenni az elejére.

Így én simán ledeket sorba tettem és a vezérlést úgy alakítottam ki.
Először kiszámoltatom, hogy a ledsorból mennyi az ami nem világít, az értéket beteszem változóba(pl led_ki), majd ennyiszer ismételtetem meg az első ciklust(a változó megadásával) amibe a led kikapcsoló(nem világító) makrót tettem.
Aztán a maradékát ami világít is változóba teszem(led_be), és a világít makrót, a követklező ciklusba teszem amit a led_be értékével ismétel meg.
A végén meg csak STCP lábon 1 és 0.

Az eredménye, hogy PL 10 ledből 3 nem világít majd 7 igen.

Ja kimaradt, ez addig világít így míg ki nem sorozod a következőt, és le nem zárod a végén. Vagyis ha a pic kilép a ciklusokból és megáll, ez akkor is fog világítani, míg ki nem kapcsolod az egészet.

Arra figyelni kell, ha 10 leded van, akkor is illendő 2x8 vagyis 16 adatot kiküldeni, mert egy IC csak 8 ledet vezérel a második is 8at de csak kettő van bekötve. (igaz nem próbáltam, ha csak 10 van kiküldve mit csinálna. Ha arra nincs semmi kötve, így a levegőben lenne, lehet hibás lenne a vezérlés)

A lenti, és ez a példa csak a sorba tett ledeknél jó.
Ha neked össze vissza kell kigyújtani ledeket ott célszerű az adatlapban és a többiek bináris gondolkozásával kalkulálni, dolgozni, mert 8 lednél nem gond, hogy minden 2. vagy 3. világít, de sok lednél, már problémás az én módszerem. Pl lásd a 7 szegmenses kijelzést.
A hozzászólás módosítva: Okt 31, 2012
(#) silent15 válasza kkrisz75 hozzászólására (») Okt 31, 2012 /
 
Köszi, mindkettőtöknek, akkor majd ezeket párszor átolvasom, és próbálkozok.

Köszi!
(#) foxi63 válasza djadji hozzászólására (») Okt 31, 2012 /
 
Szia!
Igen, mivel a pic st (schmitt trigger) bemenete csak a tápfeszének 80%-ánál billen magasba, az eltelt időt tudod alapul venni. Megszakításban szabadon fut a tmr0, és amikor túlcsordul 20mHz kristálynál kb 51uSec megszakítást okoz,és megnézi, hogy az adott láb magas-e? ha nem, akkor növeli a változó értékét eggyel ,ha magas, akkor beolvassa a változó értékét, ez a hasznos adat, és lenullázza a számlálót, kisüti a kondit, és kezdődik elölről(amikor szükséged van rá). Igy felépítve nem kell állandóan figyelni, a megszakítás elintézi a dolgot.Ráadásul akármilyen időközönként lehet meghívni, csak a kondit és a változót kell törülni előtte.Ugyan a skála nem lineáris, de jól lehet detektálni a poti helyzetét.
üdv. Foxi
(#) Klavier hozzászólása Nov 1, 2012 /
 
Sziasztok!
Az miért van, hogy leteszteltem az RB0-s megszakítást flowcode mintaprogramját a hardveren és nem egyesével növekszik az érték?
Írtam egy programot, ami rb0-t használ és folyamatosan lefagy tőle a hardver...Nem értem mi lehet a problémája :/.
A kapcsolás, amit használok a PICKIT2 Demo Boardhoz hasonló, szóval azzal biztosan nincs probléma...
Annyi különbség, h csak 20MHz-es külső kristályt használok, valamint 2 nyomógombom van
Próbáltam PORT megszakítással is, hasonló eredményekkel, mint az RB0-val...
Valakinek valami ötlete van?
A hozzászólás módosítva: Nov 1, 2012
(#) Klavier válasza (Felhasználó 15355) hozzászólására (») Nov 1, 2012 /
 
Programban fel lehet húzni?
Vagy kívülről kell?
A hozzászólás módosítva: Nov 1, 2012
(#) Klavier válasza (Felhasználó 15355) hozzászólására (») Nov 1, 2012 /
 
Így gondolod?
10K-val vagy mekkora ellenállással?

Névtelen.png
    
(#) Klavier válasza (Felhasználó 15355) hozzászólására (») Nov 1, 2012 /
 
És úgy gondolod, h ez mindkét problémámra megoldás?
(#) Klavier válasza Klavier hozzászólására (») Nov 1, 2012 /
 
Mert akkor mindjárt meg is csinálom...
(#) Klavier hozzászólása Nov 1, 2012 /
 
felhúztam, de rb0 továbbra sem egyesével növekszik, hanem össze-vissza, nem csak felfutóélre, hanem lefutóélre is
A hozzászólás módosítva: Nov 1, 2012
(#) Klavier válasza Klavier hozzászólására (») Nov 1, 2012 1 /
 
Pickit2-ben égetem a progit, ahol még a config1 és config2-t is be kell állítani
Config1: --10 0000 1100 0010
Config2: ---- -110 ---- ----
(#) Klavier hozzászólása Nov 1, 2012 /
 
ezt a kapcsolást használom

Schematic.png
    
(#) Klavier hozzászólása Nov 1, 2012 /
 
Direkt felraktam kb mindent, mert én egyszerűen nem látom, h miben van a hiba :/
Annak örülnék, ha úgy működne, mint a szimulátorában...
(#) Klavier hozzászólása Nov 1, 2012 /
 
Így is kipróbáltam a programot, amit belinkeltem az előbb...
Az rb1 működik, de amint lenyomom rb0-t azonnal lefagy a program a hardveren
(#) Klavier hozzászólása Nov 1, 2012 /
 
Azzal is próbálkoztam, hogy lecsökkentettem a tmr0 megszakítás frekvenciáját...
De így is lefagy a program :/
Egyszerűen fogalmam sincs, h mi lehet a baja
(#) Kovabe válasza Klavier hozzászólására (») Nov 1, 2012 /
 
Szia csak ötlet, ha átteszed a kapcsolot RB2-re akkor mit csinál??
(#) Klavier válasza Kovabe hozzászólására (») Nov 1, 2012 /
 
Köszi az ötletet, de RB0 megszakítás RB2-n nem lehetséges...
A kapcsolónak nincs baja, mert tüskén van, és a két nyomógombot tudom cserélgetni.
(#) kokozo válasza Klavier hozzászólására (») Nov 1, 2012 /
 
Szia! Próbálj meg a gombokkal párhuzamosan rakni egy 100nF-os kondit perl mentesítés céljából.
(#) Kovabe hozzászólása Nov 1, 2012 /
 
Sziasztok csináltam egy progit és érdeklödnék hogy a logikám jol müködött e. Annyi az egész hogy A0-án mérnék egy bejövö impulzust ami n széles és ezután ennek fügvényében villogtatnám a ledet. Vetnétek esetleg egy pillantást rá hogy mit rontottam el?

impmeres.fcf
    
(#) Klavier válasza kokozo hozzászólására (») Nov 1, 2012 /
 
Mindkettőhöz 1-1 100nF-at?
Az érdekes, hogy az RB1-es nyomógombot nem megszakításban kezelem, azzal semmi baj.
Viszont az RB0 nagyon-nagyon ritkán jó, egy gombnyomás erejéig, de általában ahogy lenyomom már fagy is le az egész hardver...
(#) kokozo válasza Kovabe hozzászólására (») Nov 1, 2012 /
 
A megszakítást húzd ki a ciklus elé mert így bekavarodik.
(#) kokozo válasza Klavier hozzászólására (») Nov 1, 2012 /
 
Igen mind a kettőhöz.
(#) Kovabe válasza kokozo hozzászólására (») Nov 1, 2012 /
 
Amugy járható a dolog? Milyen értéket fogok kapni 4MHz-en 0,9-2ms között?? Csak hogy milyen pwm-el tudok majd számolni.
(#) Klavier válasza Klavier hozzászólására (») Nov 1, 2012 /
 
Örök hálám!
Nem gondoltam volna, hogy ez lehet a baj...
Most már működik
Nagyon szépen köszönöm Neked is és Simpi-nek is a gyors segítséget!
(#) kokozo válasza Kovabe hozzászólására (») Nov 1, 2012 /
 
Az a gond hogy az időt ez nem méri csak annyit csinál, hogy figyeli a gombot, neked meg azt kellene lemérned hogy mennyi ideig van benyomva.. idozitobe rakj egy feltételes elágazást ha in =1 akkor egy változóhoz hozzáad mindig 1-et, ez lesz az impulzus szélességed és amikor in=0 akkor elmented egy segédváltozóba majd nullázod, a segédváltozóval pedig már lehet műveleteket végeztetni.
(#) Kovabe válasza kokozo hozzászólására (») Nov 1, 2012 /
 
Köszi elvileg meg is csináltam, mostmár csak az a kérdés hogy 4MHz-en 2ms-os impulzusig milyen értéket kapok. Illetve jó az amit csináltam?

impmeres.fcf
    
(#) kokozo válasza Kovabe hozzászólására (») Nov 1, 2012 / 1
 
idozitoben felesleges a 2. feltételes elágazás mivel ha az első halmis akkor egyértelműen a másik ág lesz igaz ezért a 2. feltételes elágazásból húzd fel az első hamis ágába a számítást. Mivel 4 Mhz-en 4-es osztót állítottál be így a frekvencia 976 Hz ami 1 ms tehát 2 ms-os impulzusnál jó esetben 2-t kellene kapnod a seg változóra.
(#) Kovabe válasza kokozo hozzászólására (») Nov 1, 2012 /
 
Ok öszi és akkor hogy tudok mérni 10us pontossággal, nem kell teljes pontosság de azért közelitöleg
(#) kokozo válasza Kovabe hozzászólására (») Nov 1, 2012 /
 
Sehogy szerintem, de lehet rosszul tudom. 20megás kvarccal max sebességen is csak 0.0512ms-al tudsz mérni.
(#) NyariG hozzászólása Nov 1, 2012 /
 
Hali, szeretnék csinálni egy feltételes elágazást még hozzá úgy hogy a Port D 0. bitje =1 ha igen ezt csinálja ha nem akkor meg azt.

Ezt hogy tudom beadni neki?

Plusz még azt hogy tudom beki definiálni hogy pl adott változókat a pic eepromjába mentse?

Ha túl nagy a program akkor lekezeli a bankváltásokat?
A hozzászólás módosítva: Nov 1, 2012
Következő: »»   76 / 360
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