Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Hat akkor valoban nem csak egy szinkron jelrol van szo - kellene mar olvasnom egyszer a programmer's manualokat
Egy vezérlőre több 7 szegmenses kijelzőt szeretnék kötni, és erre lenne pár konvertáló ic. Találtam egy V40511D nevűt, de nem tudom, hogy jó-e ez hozzá. Ha igen, akkor mind a 2 iránybe lehet vele kapcsolni? Értem itt, hogy ha a 7 szegmensen közös anódú, vagy közös katódú. Mind a 2 félét képes lesz kezelni?
Ha az az ic nem jó, akkor milyet lehetne használni?
Nem feltetlen kell kulon vezerlo ehhez, a PIC-kel is lehet multiplexalni a digiteket ha van szabad lab es processzor ido erre.
Idézet: „Én nem adnék ilyen tippeket... Maradjon csak GPIO.0, GPIO.1, stb.” Két dolog indokolhatja az ilyen átnevezéseket:
hali egy segitséget kérnék.
PIC16F628A tipusu pic-nél mit kell csinálni hoyg az RA4 et tudjam használi kimenetnek? mert nem akakr működni szimulátorba jó de amugy meg semi. Olvastam a doksijában hogy open drani-es. Akro nekem felhuzó ellenállás kell és ugy működne? vagy meg lehet egyáltalán oldani? válaszokat elöre is köszi üdv tibiiii00
Igaz, de akkor kapcsolgatni kéne őket, meg nekem 2-őt kell. 2x3 láb az átalakítónak, + valami kapcsoló és kész is..
Idézet: „Akro nekem felhuzó ellenállás kell és ugy működne?”
Üdv!
Van egy kis gondom! Az mplab-om a következő hibaüzivel tér vissza mikor égetném az ICD2vel a progit a PICstrat panelomon keresztül : No Vdd voltage detected at Target. Continue with operation? A PICstart panelba a 9Vos táp be van dugva. Eddig nem irt ki ilyet most ujratelepitettem a gépem és most ezt irja. Hogy lehet ezt orvosolni? Köszönöm szépen előre is!
Bocsánat! Megoldódott a gondom! az rj45-ös csati nem érintkezett! Azért köszii
Viszont most szoftveres kérdésem van. A kezdőkhoz hiven én is ledet villogtatok, már azt hiszem értem a portok kezelését viszont ez a delay nem tiszta.
DELAY ;Delay labelje MOVLW d'100' MOVWF T1 DEL MOVLW d'100' MOVWF T2 DEL1 MOVLW d'20' MOVWF T3 Ez mit akar jelenteni? Nagyon megköszönném a magyarázatot.
ennek így önmagában sok értelme nincs
T1 T2 T3 változókba tölt dec 100,100,20-at.
Értem, köszönöm!
Közben adódott még egy kérdésem. Az RD port LED-jeit akraom villogtatni ezt irtam hozzá: BSF STATUS,RP0 MOVLW 0x08 MOVWF ADCON1 MOVLW B'00011111' MOVWF TRISD MOVLW B'00000000' MOVFW TRISD BCF STATUS,RP0 Aztán válozatlanul hagytam azt a részt ami az RB ledjeit villogrtatja csak a PORTB-t átirtam PORTD re, de nem világitanak az RD ledjeim a program pedig lefordul. Rosszül következtettem ki az RD port használatát?? Jha és a DELAY-t hogy tudom ugy belőni hogy 1Hz en villogjanak a ledek 4000Hzes kvarc van a PICstart+ ban.
Valoszinuleg a delay rutin eleje ez, de hacsak nem idezed be a RETURN-ig akkor ez igy csak egy toredek amit nehez (ill tul egyszeru) magyarazni.
Amugy legyszi hasznald a Kod es a Valasz gombokat - valaszt hogy lassuk az osszefuggeseket a beszelgetesek kozott. Kod eseteben a [code=c] -t meg kell editalni es [code=asm] -et csinalni belole...
Megint csak toredek programot ideztel be, errol nehez mondani barmit is. Amugy ezzel mi volt a szandekod?
MOVLW B'00000000' MOVFW TRISD Idézet: „4000Hzes kvarc van a PICstart+ ban” Huha, honnan akasztottal 4kHz kristalyt?
Üdv!
Igazatok van bocsánat, az egész progi kellene. Nagyon megköszönném ha ezt el tudnátok nekem magyarázni, a Topi Nullától a robotokig c cikkéből szedtem az asm-et amit kicsit megpróbáltam átirkálni de azt nem értem hogy hogyan tudom megadni hogy mondjuk a PORD-n villogjanak a ledek meg a PORTB-n is.
U.I.: Próbáltam a kod-ot használni de összevisszaság lett belőle, valószinű igy egy óra tájékán én vagyok a béna, bocsi Idézet: „U.I.: Próbáltam akod-ot használni de összevisszaság lett belőle, valósinűigy egyóra tájékán én vagyok a béne, bocsi” Mondom, hogy ki kell javitani a
beallitod, hogy a PORTD felso 3 bitje output, also 5 bitje pedig input. (0 - Out ; 1 - In - igy lehet megjegyezni) Ha osszeset outnak akarod akkor nyilvanvalo a modositas:
Es *nem*
Amugy ilyen utasitas nincs is, csak MOVF TRISD,W, de sokan makroba beteszik ezt az utasitast. Szemely szerint gyulolom mert nem tesz jot a dyslexiamnak
Ez beallitja a PORTD osszes latch-et magasra, es mivel a felso 3 bit output ezert az egybol magas is lesz - mar ha van ennek a PIC-nek annyi port bitje, meg sem neztem az adat lapban, de ezt rad bizom Magyaran ha RD7, RD6 vagy RD5-on van LED akkor az ezutan vilagitani fog (mar ha a PIC labahoz a LED current source es nem current sink modban van bekote, de ennyire mar nem kellene ossze zavarjalak A LED egyik laba a porton van egy ellenallason keresztul, masik laba a foldon, igaz?
Remek, a PORTB-t piszkalod innentol kezdve, tehat a LED-eknek folyamatosan vilagitaniuk kell... Remelem segitett valamelyest!
Ehh, jol ossze zavatam en is
szoval a [ code ] -t kell kijavitani [ code=asm ] -re....
Ez itt nem azt csinálja amit szeretnél, hanem pont fordítva! MOVFW = MOVF f, W azaz az f regiszter tartalmát tölti a W-be! A MOVWF f, pedig a W-t tölti az f regiszterbe. Tudod, nem mindegy, hogy Csapra sz-ni, vagy sz-ba csapni!!
Köszönöm szépen srácok!!
Nagyon sokat segitettetek. Megvilágosodtam és már tudomm it kell még megnéznem. Tényleg köszi! Remélem ha egyszer tovább jutok a eldvillogtatáson majd én is segithetek nektek ! Idézet: „Ez itt nem azt csinálja amit szeretnél, hanem pont fordítva! MOVFW = MOVF f, W azaz az f regiszter tartalmát tölti a W-be!”
Ehhh, mondom nem jo a dyslexiamnak, tegnap este ki sem szurtam ezt, ez is forditva van Nem tudom ki talalta ki ezt a makrot, de nem jo otlet a magam fajtaknak
Sziasztok,
Magyarázza el ezt valaki please: movf PORTA,W andlw 1 << DS_BIT vagy movlw 1 << BTN_MODENORMAL gptherm.asm ... MPLab help szerint "<< | Left shift | flags = flags << 1 Google-el nem találtam jó példát, amin keresztült rájöttem volna Köszönöm!>>>>>>>>
Egyetértek, szerintem is hülyeség! Nem is használtam soha, mert csak nehezítette a hibakeresést! Alig lehet meglátni ha elírja valaki!
Ettől már csak a ";" külömb a C-ben!
Az << operator a C nyelvbol ered, es mivel az MPASM-ben van C preprocessor igy konstansokon (literalokon) mukodik ez a fajta binaris aritmetika.
Idézet: „MPLab help szerint "<< | Left shift | flags = flags << 1” 'left shift' azaz balra csusztatas. Bitek balra csusznak ennek hatasara, hogy mit csusztatunk azt az operator elot adjuk meg, hogy hany helyiertekkel azt pedig mogotte. A peldaban a 'flags' erteket 1-el shifteljuk balra. A Te peldadbn az 1 -est 'DS_BIT' -nyivel... Ezt a technikat pl arra lehet hasznalni, hogy egy adott bit helyierteket kijeloljuk - nezd meg pl azt a makrot (togglePortBit) amit a napokban tettem ide fel... Na mindegy, lenyeg, hogy ha az MPLAB helpje nem segit akkor vegyel elo egy C konyvet es nezd at a binaris aritmetikat, ott minden szepen le kell legyen irva.>
Még annyit, hogy az ...lw , ből az l mindig literalt(egész számot) jelent, amit a w-be töltés, vagy egyéb művelet elvégzése előtt elléptetnek a <<, >> operátorokkal. Egy balra léptetés kettővel való szorzásnak felel meg. Egy jobbra léptetés pedig kettővel osztásnak. Sok más nem matematikai(logikai) oka is lehet, hogy egy bináris értéket eltologatunk(maszk, egy bit ellenőrzése stb.)
Javaslom, hogy szimuláld le az MPLAB-ban a sorokat, és figyeld meg mit tölt a fordító a w-be az operátor hatására. Ismétlem, hogy az előálló érték nem a program futása közben keletkezik, hanem már előtte a fordításkor!
Ja igen, még annyit, hogy a
mint látható az idézésből, állandók. De hogy az 1-et mintk 0* balra léptetni ezt most így egyből nem tudnám megmondani!
Azt hiszem előveszem a C# könyvet is, s nekifutok még párszor megérteni ezt a részt ... a Shift-et értem egyébként, s mostmár a szintaktikát is ( << előtt és után álló értékek).
Köszi! Attól tartok, még jelentkezem >>
De itt teljesen másképp működik, mert a C-ben változók értékét is lehet ilyen módon tologatni, itt csak literálokét lehet!
Ha egy változó bitjeit akarnád tologatni, ahhoz ott van a RRF, RLF gépi kódu utasítás.
Sziasztok!Mplab8.10 16f628 kérdésem az, hogy a stimulus clock-al szeretnék tartósan aktív magas szintet tartani at egyik bemeneten nem akar sikerülni szerintetek mi lehet az oka?
Üdv!
Sikerült megoldanom a port kezelés bajomat mostmár villognak a ledjeim mindenhol Köszi a segitséget ezt használom:
Amire nem sikerült megoldást találnom az a delay. Egy 4 MHz-es kvarc van a PICstrat plus ban itt hogy tudom beállitani egy 16f877es procinak hogy mondjuk 1Hz-en villogjon a led? Köszi! |
Bejelentkezés
Hirdetés |