Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   767 / 1319
(#) szilva válasza hadnagyakos hozzászólására (») Jún 30, 2010 /
 
Szoktak csinálni valamilyen elektronikus eszközből zajgenerátort (általában valamilyen P-N átmenet zaját erősítik fel), amit A/D-zve a véletlenszámsorozat kezdőértékét is "véletlenre" lehet állítani. A véletlenszámgenerátor által adott sorozat értékeibe is bele lehet valahogy kombinálni (pl. xor-ral biteket forgatni) ennek a zajgenerátornak a zaját, akkor már nagyon jó "véletlen" számsorozatod lesz.

Szerk.: vagy a másik, hogy a mikrokontroller figyeli a tápfeszültséget és ha az elkezd összeomlani (kikapcsolják a készüléket), akkor a véletlenszámgenerátor aktuális állapotát elmenti az EEPROM-ba. Bekapcsoláskor pedig az EEPROM-ból elővett értékkel indítja a véletlenszám-generálást. A véletlenszám-sorozat így minden bekapcsolásnál folytatódik, nem újraindul.
(#) hadnagyakos válasza szilva hozzászólására (») Jún 30, 2010 /
 
Azt hiszem, itt már mind a két megoldás az ágyúval verébre lőni kategória. Ha jól belegondolunk ez igazán csak egy játék, valódi véletlen számokra nincs szükség, elég ha sok variáció van. Ezek megvalósítása több problémát vetne fel, nagyobb processzor kellene hozzá, mivel itt már minden láb foglalt ergo többe fájna a pénztárcának. Mivel többet tervezek építeni belőle, ezért ez is fontos érv.

A jelenlegi keretek között az az ötleted megvalósítható, hogy a véletlen szám generátor kezdőértékét is megadni, mondjuk egy másik véletlenszám generátorral. Vagy mondjuk amíg az illető nyomja a gombot, forgatni a biteket és ha elengedni, azt megadni a véletlenszám generátor kezdőértékének.
(#) szilva válasza hadnagyakos hozzászólására (») Jún 30, 2010 /
 
Igazad van, egy ilyen alkalmazásnál lehet, hogy felesleges ennyire megbonyolítani. Abban is igazad van, hogy ha van felhasználói közbeavatkozás, akkor abból biztosan lehet valamilyen "véletlen" patramétert kombinálni a generált számba, és ezt érdemes is megtenni valahogyan. Pl. azt, hogy milyen hosszan nyomta a gombot a felhasználó.

Tulajdonképpen volt régen olyan elektronikus dobókocka, ami annyit csinált, hogy amíg nyomta a játékos a gombot, addig nagyon gyorsan számolt 0-5 között, körbe-körbe. Amikor elengedte a gombot, akkor meg megállt ott, ahol éppen tartott. Természetesen a kijelzésnél a 0-5 bináris értékek helyett 1-6 számú LED mutatta a dobás értékét, ahogy a hagyományos kockán is vannak a pöttyök.
(#) icserny válasza szilva hozzászólására (») Jún 30, 2010 /
 
Egy másik javaslat: Power On Reset-től az első gombnyomásig pörgetni egy számlálót. Az utolsó néhány bit biztosan véletlenszerű lesz...
(#) Zolika hozzászólása Jún 30, 2010 /
 
Sziasztok!

PIC18F252 CCP modul beállítási gondjaim vannak....
A feladat az lenne, hogy a CCP1 modult capture módba állítom. A TIMER1-hez rendelem, s az RC2 (CCP1)-es lábon érkező minden lefutó(!) élre a uC átírja a TIMER1 értékét a CCPR regiszterbe.
A progi részlet:

; CAPTURE (CCP1) mód beállítása
clrf CCP1CON, ACCESS
movlw B'10000000'
movwf T3CON, ACCESS
movlw B'00000001'
movwf T1CON, ACCESS
movlw B'00000100'
movwf CCP1CON, ACCESS
Ez így nem működik, mert a hibás megszakítások generálodnak (szimulátorban is). PIC16F877-en működik.
Ha a lefutó élt felfutóra állítom (csak ezt módosítom), akkor nagyon szépen működik a progi. Csak hát nekem lefutó élre lenne szükségem....
movlw B'00000101'
movwf CCP1CON, ACCESS

Tudnátok segíteni?
Mi a probléma? Mit állítottam be rosszul?
(#) m.joco válasza senki hozzászólására (») Jún 30, 2010 /
 
Hello
Nincs valami nagyobb több száz µF-os kondenzátor a piced táprészénél? Építettem egy pices áramkört, ahol a tápnál volt egy 1000µF-os kondenzátor. A PICKit2 -m addig Vdd error-t jelzett az icsp programozásnál, amíg ki nem vettem azt a kondit. Azóta jumperrel le lehet választani a kondit, ha programot szeretnék módosítani a picben. Valószínűleg rövidzárnak hitte a PICKit2.
Üdv.
(#) PoC_Zoli hozzászólása Jún 30, 2010 /
 
Sziasztok!

Egy 18f258-as pic-et programozok asembly-ben.

Olyan gondom lenne, hogy az AN4-es (RA5) lábat szeretném használni feszültség mérésre, de az adatlapban nem találtam olyan konfigurációt amiben csak ez a láb lenne analóg bemenet.

A többi analóg láb már fel lett használva digitális kimenetnek.

Tudom, hogy lehetne új panelt készíteni, de szeretném ezt elkerülni.

Működne úgy a dolog, hogy beállítom az összes lábat ADCON1-ben A/D-re és én az első 3at kimenetként használom?

Vagy létezik rá megoldás?

Előre is köszönöm a segítséget!
(#) potyo válasza PoC_Zoli hozzászólására (») Júl 1, 2010 /
 
Van amikor működik, de láttam már olyat, hogy nem működött, és úgy rémlik, hogy pont egy 18F458 volt az, aminél nem működött. Hiába állítottam a TRISA-t kimenetté, amíg az ADCON1-ben nem volt digitálisra állítva a láb, addig bemenet maradt. De nem nagy valami kipróbálni, kiraksz rá egy logikai szintet, 270ohmmal kívülről a másik irányba húzod és megméred, hogy mi a helyzet a lábon.
(#) watt válasza potyo hozzászólására (») Júl 1, 2010 /
 
Úgy emlékszem, hogy ilyen esetben a kimenet becsapósan működik. Hol jó szintek vannak rajta, hol nem...
(#) PoC_Zoli válasza watt hozzászólására (») Júl 1, 2010 /
 
Ezért szeretem én az ilyen dolgokat... A véletlen a kedvencem...

Majd este nekiesek és le is tesztelem a dolgot.

A probléma az, hogy az egyik lábon folyamatosan kellene a kimeneten a jel. Legalábbis A/D konverzió alatt is. A többi lábnál megoldható az, hogy addig analóg bemenet még konvertálok utána meg digitális kimenet.

(egy termosztáton dolgozok amúgy)
(#) icserny válasza watt hozzászólására (») Júl 1, 2010 /
 
Idézet:
„Hol jó szintek vannak rajta, hol nem...”
Akkor itt a véletlenszám-generátor a dobókocka projekthez!
(#) mazso1988 válasza El_Pinyo hozzászólására (») Júl 1, 2010 /
 
Szia

megpróbáltam ezt a megoldást amit küldtél és sajnos mégsem a Brown Out okozza a reseteléseket.
Csak bánatomra már egyre többször jelentkezik.
Esetleg ez lehet melegedés probléma is, vagy esetleg mivel reléket kapcsolgat az zavarhatja meg a Pic-et?
(#) potyo válasza mazso1988 hozzászólására (») Júl 1, 2010 /
 
Mutass egy fényképet a kész áramkörről. LVP bittel mi a helyzet? MCLR lábbal mi a helyzet?
(#) szilva válasza PoC_Zoli hozzászólására (») Júl 1, 2010 /
 
Ha csak 1 A/D-zendő jeled van, akkor szerintem két átkötés utólagos beépítésével meg lehet esztétikusan is patch-elni a panelt, hogy az analóg jel az AN0-ra kerüljön, ami meg eddig azon a lábon volt, az kerüljön arra a lábra, ahová most van az analóg bekötve. Természetesen a rogramot is ehhez kell igazítani. Prototípusnál nem szokott az ilyen patchelés olyan borzalmasan nagy gond lenni, ha meg már minden jól működik, akkor a paneltervet átrajzolod a letesztelt valóságnak megfelelően, hogy az esetleges utángyártásnál már minden a helyén legyen. Csak emiatt biztosan nem érdemes új panelt készíteni.

Egyébiránt én inkább tartózkodnék az olyan megoldásoktól, amik az adatlap szerint nem támogatottak. A baj az ilyesmikkel az szokott lenni, hogy lehetséges, hogy a mostani chippel kiteszteled és jól működik, de egy későbbi, más revíziójú chippel meg már nem fog. Vagy ha egy másik, hasonló lábszámú chipet teszel bele a fejlesztések során (mert pl. több memória kell, vagy valami olyan periféria, ami ebben nincs), és abban a nem dokumentált portkezelés nem úgy működik, mint ebben, akkor az megintcsak fejtörést fog okozni.
(#) mazso1988 válasza potyo hozzászólására (») Júl 1, 2010 /
 
Sajnos már teljesen be van dobozolva, így belsejéröl képet nem tudok küldeni pont ezért tartok attol hogy talán a belső hőmérséklettől resetel.

Ez a kapcsolás a Topi féle időkapcsolós hosszabító, majdnem teljesen úgy lett bedobozolva mind ahogy ő is csinálta!

LVP ki van kapcsolva, MCLR pedig 10K tápra van húzva már BROWN OUT -ot is kikapcsoltam de még így is resetel.
(#) Lozsa hozzászólása Júl 1, 2010 /
 
pic12f683-as kontrollert programozok ICD2-vel assemblyben. Namost ha jól tudom ill. értem a dolgot, akkor debug-ra nincs mód.
namármost akkor hogyan tudom ellenőrizni az A/D konverzióm eredményét? Mert hiszen nincs breakpoint ahol a watch-ban látnám az értéket.
kimenetem semmi más mint egy PWM jel.

Ez egy búvárlámpa vezerlője lesz, ahol 2 analóg láb van. 1 akkufeszültéség mérés, 2 LED hőmérséklet NTC-vel.
Főleg a hővédéelem miatt fontos lenne, hogy jól tudjam belőni a paramétereket. Túlmelegedés esetén elkedni csökkenteni a PWM duty értéket.
(#) vicsys válasza Lozsa hozzászólására (») Júl 1, 2010 /
 
Miért nem dugod össze próbapanelon és akasztasz rá egy 232-t? Ezen keresztül egy putty-val már tudod olvasni. Lehet, hogy macerás, de én sokszor így szoktam fejleszteni. Olyan hardver hibák is elő jönnek amire nem gondoltam programíráskor.
(#) Lozsa válasza vicsys hozzászólására (») Júl 1, 2010 /
 
mert ez egy nagyon pici smd áramkör
(#) vicsys válasza Lozsa hozzászólására (») Júl 1, 2010 /
 
Azért 2 szál drótot (RX és TX) rá tudsz akasztani?
(#) potyo válasza Lozsa hozzászólására (») Júl 1, 2010 /
 
Teszel egyik lábára egy ledet, másikra potmétert, és beleírod, hogy a konverzió eredménye ha mondjuk 3V felett van, akkor bekapcsolja a ledet. Utána potmétert végigtekered nullától maximumig, ha 3V-nál bekapcsol a led, akkor jó az eredmény.
(#) pako hozzászólása Júl 1, 2010 /
 
Sziasztok!

Egy dsPIC33FJ64MC204-el kapcsolatban kérném tanácsotokat. Helyzet a következő:
Van egy 5V-os kimenetű jelforrásom, ami az egyik 5V toleráns lábra csatlakozik. Átnézve az adatlap Electrical Characteristic részét, feltűnt, hogy az 5V toleráns lábak csak akkor viselik el az 5 voltot, ha a tápfeszültség legalább 3V, az alatt Vdd+0.3 voltot szabad ráadni legfeljebb. Normális esetben ez nem is gond, mivel 3.6V-ról járatom.
Aggódom viszont az miatt, hogy ha a bekapcsolás pillanatában már jelen van az 5V-os bemenő jel, de a tápfesz még nem érte el a 3V-ot, akkor károsodhat a bemenet.
Sajnos szkóppal nem tudom lemérni, mennyi ideig tart a táp felfutási ideje. (Elszált a függőleges eltérítésem.) Saccra nem tarthat tovább 0.2 másodpercnél.

Nektek mi a véleményetek?
(#) potyo válasza pako hozzászólására (») Júl 1, 2010 /
 
Szerintem valamit elnéztél az adatlapban. Az szokott lenni, hogy az 5V toleráns lábakon nincs felsőoldali védődióda, és ezesetben nem számít, hogy mekkora a kontroller tápja, lehet akár 2V is, akkor is nyugodtan mehet az 5V a bemenetre.
(#) PetAd hozzászólása Júl 1, 2010 /
 
Üdv
Lehet úgy feszültséget mérni egy 16F628A-val, hogy PWM jelet állítok elő majd azt átlagolom és a belső komparátorral összehasonlítom a mérendő feszültséggel?
(#) pako válasza potyo hozzászólására (») Júl 1, 2010 /
 
Nézd meg.

Névtelen.png
    
(#) potyo válasza PetAd hozzászólására (») Júl 1, 2010 /
 
Lehet. Egy picit lassú lesz, de végülis működik.
(#) potyo válasza pako hozzászólására (») Júl 1, 2010 /
 
És tényleg Megint egy olyan lépés a microchiptől, amit nem értek

Milyen sebességű az a bejövő jeled? Én tennék vele sorba egy 10k ellenállást és ennyi.
(#) pako válasza potyo hozzászólására (») Júl 1, 2010 /
 
Legfeljebb 2MHz-es. Ez miatt nem szeretnék szintet illeszteni / diódázni. (Ráadásul összesen 6 ilyen bemenetem van, csak a kérdésben 1-et emeltem ki.)
A jelalak sem torzulhat sokat, egy quadrature kimenetű enkóderről van szó.
(#) p_istvan válasza PetAd hozzászólására (») Júl 1, 2010 /
 
Szia!
Így egyszerűbb: ADC 16f628-cal
Ha mindenáron feszültséget akarsz mérni a 16f628-cal. A lap alján ott a kód is.
(#) potyo válasza pako hozzászólására (») Júl 1, 2010 /
 
Nemtudom, nekem furcsa, eddig még nem láttam ilyen megoldást 5V toleráns lábra sehol sem. Szerintem elég lenne oda szimplán egy-egy soros ellenállás, ha nem 10k, akkor 1k.
(#) Ideiglenes válasza Lozsa hozzászólására (») Júl 2, 2010 /
 
A pwm-en tökéletesen vissza lehet ellenőrizni. Kötsz rá egy soros 1k-s ellenállást, annak a végére meg egy 100µF kondit. A beolvasott analog értéket a pwm-re kiküldöd és század pontosan ugyanazt a feszt fogod rajta mérni, amit az a/d beolvasott.
Következő: »»   767 / 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