Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   749 / 1320
(#) vilmosd válasza (Felhasználó 56240) hozzászólására (») Máj 24, 2010 /
 
Hali
Azt hittem valami emesztheto formatumban van meg a forras. Na mindegy. Nem tudom mennyire vagy otthon a PIC programozasban, de kellene irni 1-2 kis moricka programot az alapveto HW kiprobalasara (KBD, LED rele stb). Akkor meg lehetne gyozodni a PIC es a panel mukodeserol. Pl egy LED villogtato progi, Kbd allapot a LED-re, I2C kezeles es hasonloak. Mint elobb irtam, egy bonyolult HW-t illik leelenorizni, mielott mindent beledugdosunk. A program maga nem biztos, hogy elindul az AD, LCD es EEPROM nelkul. Probalj meg valami egyszeru kis progikat amivel vegig tudsz ellenorizni minden vonalat. Ez nem egy LED villogtato HW 12F675-el. Sokkal bonyolultabb. Ha maskepp nem tudsz merni, szedj ki mindent a panelbol, es csipogoval probalj vegig minden vonalat zarlatra es szakadasra. Hatha van valami kis ordog elbujva a panelon.
Udv Vili
(#) trudnai válasza (Felhasználó 56240) hozzászólására (») Máj 24, 2010 /
 
Ez egy HEX-bol visszafejtett program. A forras nincs meg?

Amugy nem veletlen az 50Hz-et hallod meg? Tapot kimerted? Stabil, rendesen meg van szurve, terhelheto?
(#) (Felhasználó 56240) hozzászólása Máj 24, 2010 /
 
Szia
Labortáppal hajtom és sajnos az ingadozást, nem tudom mérni
Csak multim van csak
A hang, amit halok a kijelzőnek is, van és a PIC felöl is, jön valami
Sajnos csak HEX van, mert igaz az itteni oldalról szedtem de eredetileg külföldi munka


Bővebben: Link

Bővebben: Link
(#) (Felhasználó 56240) válasza trudnai hozzászólására (») Máj 24, 2010 /
 
Szia
Találtam valamit
Ez lehet, hogy többet mond
(#) (Felhasználó 56240) válasza trudnai hozzászólására (») Máj 24, 2010 /
 
Elfeledtem a billentyűzettet, még nem raktam bele, mert nem kaptam még
Az EEPROM sincs benne
Legalább az EEPROM-ot belerakom egy bin kiterjesztésű filest kel bele égetnem
Ha jól olvastam, remélem az jó lesz
A panelon kettő tarabb EEPROM helye van melyikbe, rakjam
(#) Hp41C válasza (Felhasználó 56240) hozzászólására (») Máj 24, 2010 /
 
Szia!

Pedig ott van a C forrás is...
- Multiméterrel mérd meg a Osc2/Clko (14. láb) kimeneten a feszültséget, ha rendben rezeg, akkor kb. fél tápfeszültséget kell mérned.

forrás.JPG
    
(#) (Felhasználó 56240) válasza Hp41C hozzászólására (») Máj 24, 2010 /
 
Szia
Igen meg találtam fel is töltöttem, mert meg találtam
Most meg is mérem köszönöm
kb. 2.5V ?
(#) (Felhasználó 56240) válasza Hp41C hozzászólására (») Máj 24, 2010 /
 
Szia
Lemértem és a 14láb(osc2) 2.28V a 13láb (osc1) 2.18
Akkor lehetséges, hogy rezeg?
(#) Hp41C válasza (Felhasználó 56240) hozzászólására (») Máj 24, 2010 /
 
Szia!

Akkor rezeg... Lehet,hogy a program vár valamire...
(#) (Felhasználó 56240) válasza Hp41C hozzászólására (») Máj 24, 2010 /
 
Szia beindult a programmal volt valami nem tudtam 3F32-re bealítani
(#) geri12 hozzászólása Máj 25, 2010 /
 
Üdv mindenkinek!

Mplab fordításkor ez a hibaüzenet jelenik meg:

Duplicate label ("CM2" or redefining symbol that cannot be redefined)

Ez amúgy egy ébresztőóra lenne jópár funkcióval. A részlet ahol a CM2 található:

CHANGE_MODE

; UN-FREEZE DISPLAY
BCF MORE_FLAGS,FREEZE

CASE MODE,MODE_TM
GOTO CM3
CM4
; RESET MODES WITH SUBMODES
CLRF TM_MODE
CLRF AL_MODE

CM2
INCF MODE,F
CASE MODE,MAX_MODE
CLRF MODE

; CALL MODECHANGED...
CALL MODECHANGED

GOTO MAIN

CM3
; 12/24 HOUR MODE CHANGE

; WHEN MODE IS PRESSED DURING TIME SET
CASE TM_MODE,TM_TIME
GOTO CM4

; TOGGLE 12/24 HOUR MODE
TOGGLEBIT MORE_FLAGS,MIL_MODE

; CLEAR TIME SET MODE
CLRF TM_MODE
GOTO MAIN

Persze nem azt várom hogy valaki megoldja helyettem a problémát, csak arra volnák kíváncsi ez a hibaüzenet mire utal.

Köszi előre is!
(#) trudnai válasza geri12 hozzászólására (») Máj 25, 2010 /
 
Arra utal, hogy valahol mashol ez a CM2 mar egyszer definialva lett, es most ujra akarod definialni, amit nem enged meg neked. Hasznalj mas nevet, es nezz utana ki es miert hasznalja ezt a cimket, mert lehet valami nagyobb bibi-t talalsz a programban ami eddig esetleg nem tunt fel...
(#) potyo válasza geri12 hozzászólására (») Máj 25, 2010 /
 
A komparátor beállításainál van egy CM2 nevű bit, az ütközhet a címkéddel, ha olyan kontrollered van, amiben van komparátor.
(#) robotech hozzászólása Máj 25, 2010 /
 
Üdv mindenkinek!

a nagyobb számokkal való feladatokban elég ügyetlen vagyok PIC-ben, egy ideje nézem a netet, de nem találok rutin 4 byteos szám dekrementálására ASM-ben.

2 byteos szám nem okoz gondot,

MOVF szamL,W
BTFSC STATUS,Z
DECF szamH,F
DECF szamL,F

megoldással szoktam dekrementálni, de sajnos nem tudom átírni ezt a kódot 4 byteosra. MPLAB SIM-mel próbálgatom.
Lenne valakinek rutinja 4 byteos dekrementre?
Köszönöm előre is!
(#) potyo válasza robotech hozzászólására (») Máj 25, 2010 /
 
Nemtudom, segít-e, de talán igen. Ezt egy C forráskód lefordított listájából szedtem ki.
  1. 102:                                            szamlalo--;                                     // egyel csökken a hátralevő idő
  2.    731    3001     MOVLW 0x1
  3.    732    00F6     MOVWF 0x76
  4.    733    01F7     CLRF 0x77
  5.    734    01F8     CLRF 0x78
  6.    735    01F9     CLRF 0x79
  7.    736    02F0     SUBWF main@szamlalo, F
  8.    737    0877     MOVF 0x77, W
  9.    738    1C03     BTFSS STATUS, 0
  10.    739    0F77     INCFSZ 0x77, W
  11.    73A    02F1     SUBWF 0x71, F
  12.    73B    0878     MOVF 0x78, W
  13.    73C    1C03     BTFSS STATUS, 0
  14.    73D    0F78     INCFSZ 0x78, W
  15.    73E    02F2     SUBWF 0x72, F
  16.    73F    0879     MOVF 0x79, W
  17.    740    1C03     BTFSS STATUS, 0
  18.    741    0F79     INCFSZ 0x79, W
  19.    742    02F3     SUBWF 0x73, F


A main@szamlalo egy 32 bites változó, és a 0x70 címen van a legaljó bájtja, a többi pedig a 0x71, 0x72 és 0x73 címeken. A 0x76-0x79 címen levő változó segédváltozó, a fordító generálta. Amint látható, a segédváltozó minden bájtját nullára állítja a legalsó kivételével. Ezután a két alsó bájtot kivonja egymásból (gyakorlatilag egyel csökkenti a szamlalo alsó bájtját), majd megnézi, hogy volt-e alulcsordulás (ezt a STATUS, 0 vagyis C bitje jelzi). Ha igen, akkor növel a segédváltozó következő bájtján egyet, majd azt kivonja a szamlalo következő bátjából, és így tovább. Ha valahol nem keletkezik átvitel, onnantól a segédváltozók felsőbb báltjai nullák maradnak, és így a többi helyen már nullát von ki.



18F-nél könnyebb megoldani az ilyesmit, mert ott a DECF nem csak a Z bitet állítja, hanem C, DC, OV és N biteket is.
(#) Hp41C válasza robotech hozzászólására (») Máj 25, 2010 /
 
Szia!

Van egyszerűbb is: byte3:byte2:byte1:byte0 egy 32 bite szám (byte0 a legalacsonyabb helyiérték)

  1. decf    byte0,f
  2.         incfsz  byte0,w
  3.         goto    noborrow
  4.         decf    byte1,f
  5.         incfsz  byte1,w
  6.         goto    noborrow
  7.         decf    byte2,f
  8.         incfsz  byte2,w
  9.         goto    noborrow
  10.         decf    byte3,f
  11.         incf    byte3,w
  12. noborrow


Ezen a lapon érdemes szétnézni...
(#) potyo válasza Hp41C hozzászólására (») Máj 25, 2010 /
 
Elmés
(#) robotech válasza potyo hozzászólására (») Máj 25, 2010 /
 
Uff !

Átrágom magam rajta. Köszi!
(#) Hp41C válasza Hp41C hozzászólására (») Máj 25, 2010 /
 
Sajnos egy sorral többet másoltam ide, a 11. sor törölhető...
(#) geri12 válasza potyo hozzászólására (») Máj 25, 2010 /
 
Így igaz! 16F876A-t használok és van benne komparátor. Átírtam a CM2-t CM5-re, és most hibaüzi nélkül végigment. Ezer köszi!
(#) brato válasza robotech hozzászólására (») Máj 25, 2010 /
 
Üdv!

Itt találtam mindenféle rutinhoz generátort tetszőleges byte számra
Bővebben: Link
(#) robotech válasza brato hozzászólására (») Máj 25, 2010 /
 
Szuper az oldal Köszi!
Be is tettem könyvjelzőbe.
(#) Auf hozzászólása Máj 25, 2010 /
 
Sziasztok!
Után építettem egy hőmérőt. Ezt, és sajnos nem akar menni, pic 16f628a-val. Erre írtam át Ezt
Mi lehet a baj?
Melléklem a panelrajzot.
Köszi
(#) vicsys válasza Auf hozzászólására (») Máj 25, 2010 /
 
Szia
2 dolog amire figyelni kellene. Egyik a kezdő cím, a másik az analóg bemenetek kikapcsolása.
(#) Auf válasza vicsys hozzászólására (») Máj 25, 2010 /
 
Oh, már mükxik.
Ez maradt ki:
movlw 7
movwf CMCON


Köszi.
(#) trudnai válasza Hp41C hozzászólására (») Máj 25, 2010 /
 
Vagy ha nagyon nem akarod felulirni a W-t, akkor:

  1. comf    delay1,f
  2.         comf    delay2,f
  3.         comf    delay3,f
  4.  
  5.         incf    delay1,f
  6.         btfsc   STATUS,Z
  7.         incf    delay2,f
  8.         btfsc   STATUS,Z
  9.         incf    delay3,f
  10.         btfsc   STATUS,Z
  11.         decf    delay4,f
  12.  
  13.         comf    delay1,f
  14.         comf    delay2,f
  15.         comf    delay3,f
(#) Hp41C válasza Auf hozzászólására (») Máj 25, 2010 /
 
Szia!

Azért a változókat is tedd át a 16F628(A)-n 0x20 -tól kezdődő RAM tartományra (a 16F84-ben 0x0C-n kezdődött)...
(#) Attila86 hozzászólása Máj 25, 2010 /
 
Lehet hogy méhkasba nyúlok de muszáj megkérdeznem:
Most LCD TV-ket javítok, ezelőtt pedig autók fedélzeti számítógépeit javítottam. Ezeken kívül is persze rengeteg gyári áramköri lapot láttam már. De PIC egyetlen egyen sem volt! Minden Atmel AVR volt, PIC nem. Miért?
A hobbistákon kívül biztos gyártók is használnak PIC-eket, különben a Microchip cég már tönkrement volna...
(#) potyo válasza Attila86 hozzászólására (») Máj 25, 2010 /
 
Mert a PIC-es nem szorul javításra

Mellesleg biztosan AVR volt? Nem valami 8051 származék?
(#) Attila86 válasza potyo hozzászólására (») Máj 25, 2010 /
 
Hát nem tudom, de "Atmel" szokott rájuk írva lenni.
Következő: »»   749 / 1320
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