Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   315 / 1319
(#) trudnai válasza watt hozzászólására (») Okt 20, 2008 /
 
Hat akkor valoban nem csak egy szinkron jelrol van szo - kellene mar olvasnom egyszer a programmer's manualokat
(#) Hujikolp hozzászólása Okt 20, 2008 /
 
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?
(#) trudnai válasza Hujikolp hozzászólására (») Okt 20, 2008 /
 
Nem feltetlen kell kulon vezerlo ehhez, a PIC-kel is lehet multiplexalni a digiteket ha van szabad lab es processzor ido erre.
(#) icserny válasza potyo hozzászólására (») Okt 20, 2008 /
 
Idézet:
„Én nem adnék ilyen tippeket... Maradjon csak GPIO.0, GPIO.1, stb.”

Két dolog indokolhatja az ilyen átnevezéseket:
  1. Ha számításba jön egy másik PIC-re való átállás.
  2. Vagy ha a Low Pin Count Protoboard-on játszadozik valaki, s azon A0,A1, stb. a feliratozás.
(#) tibiiii00 hozzászólása Okt 20, 2008 /
 
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
(#) Hujikolp válasza trudnai hozzászólására (») Okt 20, 2008 /
 
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..
(#) potyo válasza tibiiii00 hozzászólására (») Okt 20, 2008 /
 
Idézet:
„Akro nekem felhuzó ellenállás kell és ugy működne?”


(#) icserny válasza Hujikolp hozzászólására (») Okt 20, 2008 /
 
Portbővítő IC-ben is lehet gondolkodni:

MCP23017 (I2C) vagy MCP23S017 (SPI) és hason lovak...
(#) mrfencer hozzászólása Okt 20, 2008 /
 
Ü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!
(#) mrfencer hozzászólása Okt 20, 2008 /
 
Bocsánat! Megoldódott a gondom! az rj45-ös csati nem érintkezett! Azért köszii
(#) mrfencer hozzászólása Okt 20, 2008 /
 
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.
(#) gulasoft válasza mrfencer hozzászólására (») Okt 20, 2008 /
 
ennek így önmagában sok értelme nincs
T1 T2 T3 változókba tölt dec 100,100,20-at.
(#) mrfencer válasza gulasoft hozzászólására (») Okt 20, 2008 /
 
É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.
(#) trudnai válasza mrfencer hozzászólására (») Okt 21, 2008 /
 
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...
(#) trudnai válasza mrfencer hozzászólására (») Okt 21, 2008 /
 
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?
(#) mrfencer válasza trudnai hozzászólására (») Okt 21, 2008 /
 
Ü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.

  1. LIST P=16F877
  2.  #INCLUDE "P16F877.INC"
  3.  __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF
  4.                         ;A 0x20 egy szabad memória rész kezdő címe
  5. CBLOCK  0x20
  6.         T1
  7.         T2
  8.         T3
  9. ENDC
  10.  
  11. ORG 0
  12.  
  13. START
  14.         BSF     STATUS,RP0                     
  15.         MOVLW   0x06                   
  16.         MOVWF   ADCON1                 
  17.         MOVLW   B'00011111'            
  18.         MOVWF   TRISA                  
  19.         MOVLW   B'00000000'            
  20.         MOVWF   TRISB                  
  21.         BCF     STATUS,RP0                     
  22.        
  23.         BSF STATUS,RP0
  24.         MOVLW 0x08
  25.         MOVWF ADCON1
  26.         MOVLW B'00011111'
  27.         MOVWF TRISD
  28.         MOVLW B'00000000'
  29.         MOVFW TRISD
  30.         BCF STATUS,RP0
  31. TEST
  32. MOVLW B'11111111'
  33. MOVFW PORTD
  34. CALL DELAY
  35. MOVLW B'1111'
  36. MOVWF PORTB
  37. CALL DELAY
  38. MOVLW B'1010'
  39. MOVWF PORTB
  40. CALL    DELAY
  41. MOVLW B'0101'
  42. MOVWF PORTB
  43. CALL DELAY
  44.  
  45. GOTO TEST
  46.  
  47.  
  48.  
  49. DELAY                                          
  50.         MOVLW   d'50'                  
  51.         MOVWF   T1                             
  52. DEL
  53.         MOVLW   d'50'
  54.         MOVWF   T2                             
  55. DEL1
  56.         MOVLW   d'20'
  57.         MOVWF   T3                             
  58. DEL2
  59.         NOP
  60.         NOP
  61.         NOP
  62.         NOP
  63.         NOP
  64.         NOP
  65.         NOP
  66.         NOP
  67.         NOP
  68.         NOP
  69.         DECFSZ  T3,f                   
  70.         GOTO    DEL2                   
  71.         DECFSZ  T2,f                   
  72.         GOTO    DEL1
  73.         DECFSZ  T1,f                   
  74.         GOTO    DEL
  75.         RETURN                          MOVWF   T1     
  76.  
  77. GOTO TEST
  78.  
  79. END


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
(#) trudnai válasza mrfencer hozzászólására (») Okt 21, 2008 /
 
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
  1.  
-ot
  1. -re, de mindegy, majd legkozelebb.
  2.  
  3. Azt a ket sort amit az elobb kerdeztem mi a szandekod vele vedd ki, nincs semmi ertelme!
  4.  
  5. Ennel:[code=asm]    MOVLW B'00011111'
  6.     MOVWF TRISD

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:
  1. MOVLW B'00000000'
  2.     MOVWF TRISD

Es *nem*
  1. MOVLW B'00000000'
  2.     MOVFW TRISD  ; <--- figyeld meg a W es F betuket az utasitasban!!!

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
  1. MOVLW B'11111111'
  2.     MOVFW PORTD

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?
  1. CALL DELAY
  2.     MOVLW B'1111'
  3.     MOVWF PORTB
  4.     CALL DELAY
  5.     MOVLW B'1010'
  6.     MOVWF PORTB
  7.     CALL DELAY
  8.     MOVLW B'0101'
  9.     MOVWF PORTB
  10.     CALL DELAY


Remek, a PORTB-t piszkalod innentol kezdve, tehat a LED-eknek folyamatosan vilagitaniuk kell...

Remelem segitett valamelyest!
(#) trudnai válasza trudnai hozzászólására (») Okt 21, 2008 /
 
Ehh, jol ossze zavatam en is

szoval a [ code ] -t kell kijavitani [ code=asm ] -re....
(#) watt válasza mrfencer hozzászólására (») Okt 21, 2008 /
 
  1. MOVLW B'00000000'
  2. MOVFW TRISD

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!!
(#) mrfencer hozzászólása Okt 21, 2008 /
 
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 !
(#) trudnai válasza watt hozzászólására (») Okt 21, 2008 /
 
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!”


  1. MOVLW B'11111111'
  2.     MOVFW PORTD

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
(#) Jengo hozzászólása Okt 21, 2008 /
 
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!>>>>>>>>

gptherm.asm
    
(#) watt válasza trudnai hozzászólására (») Okt 21, 2008 /
 
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!
(#) trudnai válasza Jengo hozzászólására (») Okt 21, 2008 /
 
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.>
(#) watt válasza Jengo hozzászólására (») Okt 21, 2008 /
 
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!
(#) watt válasza Jengo hozzászólására (») Okt 21, 2008 /
 
Ja igen, még annyit, hogy a

  1. BTN_MODENORMAL EQU     0  
  2. DS_BIT         EQU     4


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!
(#) Jengo válasza watt hozzászólására (») Okt 21, 2008 /
 
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 >>
(#) watt válasza Jengo hozzászólására (») Okt 21, 2008 /
 
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.
(#) messer hozzászólása Okt 21, 2008 /
 
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?
(#) mrfencer válasza trudnai hozzászólására (») Okt 21, 2008 /
 
Üdv!

Sikerült megoldanom a port kezelés bajomat mostmár villognak a ledjeim mindenhol Köszi a segitséget
ezt használom:
  1. banksel TRISB  
  2. clrf    TRISB          
  3. banksel PORTB


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!
Következő: »»   315 / 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