Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   799 / 1320
(#) Hp41C válasza cNobody hozzászólására (») Szept 13, 2010 /
 
Szia!

A PICKit2 AUX bemenetével talán meg lehetne mérni, de tartok tőle, hogy nagyon megterheli az órajel kimenetet. Jó lenne egy CMOS kapuval leválasztani.
(#) szilva válasza potyo hozzászólására (») Szept 13, 2010 /
 
Ebben az áramkörömben a 16F946 mellett van egy órakvarc (a képeken még nincs beültetve), ami mellett hagytam helyet a soros ellenállásnak (Rs). Az elkészült órába 4.7k-t tettem ide (ezt most meg is néztem itt az asztalomon járó példányon), és emlékeim szerint 22pF-es kerámiákat a kvarc két lábára (az SMD kondikra sajnos nincs semmi írva...), ezekkel az értékekkel - ha jól számolok - már két és fél éve megy az óra stabilan, viszonylag pontosan (évi pár percet siet).

Ha már szóba került ez az óra: időközben a mintadarabon kívül elkészült még három darab, mindegyik elsőre indult a fenti értékekkel a kvarckörben. Az "ős" jelenleg is az asztalomon megy egy 3.5-es floppydobozba támasztva, 3db AA elemről, folyamatosan, elemcsere nélkül. A múlt télen talán még téli-nyári időt sem állítottam rajta, nem tudom, utoljára mikor lett pontosra állítva, de az biztos, hogy fél éven belül nem nyúltam hozzá (lehet, közelebb áll az egy évhez inkább). A számítógéphet szoktam állítani, elvileg az meg internethez szinkronizál. Most a számítógéphez képest nem egészen 3.5 percet siet, és 9. hó 4-ét mutat A dátum azért csúszik el, mert ez még a 0.9-es, asm-ben írt firmware benne, ami minden hónapot 30 naposnak vesz. Ebből ki lehetne számolni, hogy kb. hány hónappal ezelőtt állítottam be pontosan mindent rajta.

Az idők folyamán a firmware-t átírtam C-re, tettem bele sok okosságot. Ezen a firmware-en tanulmányoztam és valósítottam meg az állapotgépes menürendszert. Erre azért volt szükség, mert a három gomb egy igen bonyolult gráfon lépked a különböző üzemmódok miatt, ezeket a gombkezelőben if-ekkel vagy switch-ekkel megvalósítani abszolút átláthatatlan lenne. Aztán belekerült egy DS1821-et lekérdező rutinka is, ami fél percenként kiolvassa a hőszenzort, a kiolvasások között meg elveszi a tápfeszét is. Tud maximumot és minimumot tárolni, ezeket meg lehet jeleníteni, ki lehet törölni.

A fogyasztására jellemző, hogy az asztalomon lévő ős kapott 3db AA elemet, amiről 2.5 éve megy folyamatosan. A másik példányt hőmérésre használom úgy, hogy az érzékelő ki van dobva az erkélyen túlra egy kb. 8m-es mikrofonkábel végén. Ez 2008 karácsonyi szünetében készült el, akkor a használt elemek közül válogattam ki 3 jobb állapotban lévőt és azokat kapta meg. Az elemek most adták fel, kb. 1 hónapja, de nem is úgy, hogy padlóra merültek, hanem az egyik kiengedett valami lét magából Ennek köszönhetően az elemtartót ki is dobtam, most friss elemek vannak benne, új elemtartóban. A mért fogyasztása az órának 5 és 10 uA között van a kijelző üveg típusától és az épp kijelzett szegmensektől függően, gombnyomás alatt a belső felhúzók miatt 80uA-re nő az áramfelvétel. A DS1821 lekérdezése alatt, 30mp-enként 1mp hosszan kb. 1mA-re ugrik meg az áramfelvétel, ezt ha átlagoljuk, akkor nagyjából 30uA-es többletet jelent az óra alapfogyasztásához. Ha egy elemet 1000mAh-snak feltételezek (egy alkáli szerintem sokkal több), akkor a 30uA-es fogyasztás 3.8 évet jelent, a hőmérő nélküli, maximálisan 10uA-es pedig 11.4 évet
(#) AZoli válasza Hp41C hozzászólására (») Szept 13, 2010 /
 
Titkosnak titkos ugyan, de nem az a baj, hanem hogy a 7184. sorban van az END direktíva.
Csak ezért az egy változóért anyázik a kb. 150 elnevezett közül. Most átnevezem, kipróbálom így. Ha nem megy, töltök fel képet.
Köszi hogy foglalkozol a kérdésemmel.
(#) AZoli válasza AZoli hozzászólására (») Szept 13, 2010 /
 
Átnevezve sem volt jó. Megcseréltem egy másik változóval, úgy lefordította. Visszacseréltem, úgy megint nem. Egy XP újraindítás után már úgy is lefordul, viszont debugger indításakor a sorok számozása el van csúszva 3-al.
(#) szilva válasza AZoli hozzászólására (») Szept 13, 2010 /
 
Nézd meg hexában a forrásfilet (pl. Totalcommander viewerében), lehet, hogy vannak benne nem odaillő byteok (pl. unicode-os header vagy ilyesmi az eleján), lehet, hogy ilyesmik hülyítik meg. Esetleg unixos/DOS-os sorvégkülönbségek (LF vs CR+LF).
(#) cNobody válasza potyo hozzászólására (») Szept 13, 2010 /
 
Kipróbáltam.
Sorba tettem a 32K kvarccal egy 120 Ohm -os ellenállást, a két lába közé pedig egy 4M7 Ohm -osat. Szemre semmi különbség.
(#) cNobody válasza Hp41C hozzászólására (») Szept 13, 2010 /
 
Szia!
A kvarcot ráforrasztottam egy tüskére (tördelhető), most már elég vastag a lába.

Kicsit megbuheráltam az eredeti programot és a megszakításba beraktam egy parancsot, ami mindig negálja az egyik portlábat. Ezzel a portlábbal próbálgattam a PK2 Logic tool-t. Eredményt csatoltam. Ha jól tapasztaltam ki a dolgokat akkor a PK2 a lefutó élt figyelte. Innen késleltetett 3 ablaknyit, vagyis 600ms-t, és onnan kezdte venni a mintát. Amint látszik 755-761ms alatt váltott át a portláb. Ami annyit tesz hogy a 16bites TIMER1 ennyi idő alatt csordult túl és okozott magszakítást. Az X és Y kurzor között ingadozott az érték.

A kvarcon még 27pF-os kondik vannak, holnap megyek venni nagyobbakat. Mert a korábban belinkelt Microchip AN849-es AppNote-ban, ha jól vettem ki, akkor 100pF-al volt stabil.

A kvarc lábával is kipróbáltam, de semmit nem reagált a PK2.
Ezt a CMOS kapuval való leválasztást hogy gondoltad? PL egy 4081-es ÉS kaput rakjak be közéjük? Az ÉS kapu kimenete megy a PK2-be, az egyik bemenet tápra, a másik bemenet meg a karc lábára? Így? Vagy hogy?

pk2 logic.png
    
(#) icserny válasza cNobody hozzászólására (») Szept 13, 2010 /
 
Idézet:
„A kvarc lábával is kipróbáltam, de semmit nem reagált a PK2.”
Úgy tudom, a PICkit2 bementként használható lábai belül 4,7 kOhm-mal le vannak húzva a földre, ezért kell a leválasztás egy CMOS kapuval.

Az sem mindegy egyébként, hogy az oszcillátor kimeneti vagy bemeneti lábát nézed. A kimenet nyilván jobban viseli a terhelést.
(#) cNobody válasza icserny hozzászólására (») Szept 14, 2010 /
 
Az AUX-on (CH3) nincs lehúzó ellenállás, és azzal próbálkoztam.
Honnan tudom hogy a kristálynak melyik a kimeneti lába?
Vagy azt a PIC lábkiosztásánál kell figyelni? A T1OSO, 15. láb?
(#) potyo válasza cNobody hozzászólására (») Szept 14, 2010 /
 
A PIC oldalán kell nézni, és a T1OSO a kimenet, az utolsó O betű az Output.
(#) icserny válasza cNobody hozzászólására (») Szept 14, 2010 /
 
Idézet:
„Sorba tettem a 32K kvarccal egy 120 Ω -os ellenállást”
Ha jól olvasom, az AN489 50 kOhm-ig terjedő Rs értéket ajánl, s azt mondja, hogy inkább Rs az ellenállást növeld, ne a kondenzátort (ne térjen el nagyon a 22 - 33 pF-től).
(#) AZoli válasza szilva hozzászólására (») Szept 14, 2010 /
 
Nem látok benn semmi szemetet..
  1. :020000040000FA
  2. :0600000000007DEF03F09B
  3. :040008004BEF00F0CA
  4. :08001800E8CF13F0D8CF14F07B
  5. :10002000E0CF15F04DC116F0F3CF0BF0F4CF0CF08C
  6. :10003000010110B01ED0A1B0CFEC2BF0F0B239EC22
  7. :1000400026F0F2B41AEC04F0F0B012EC26F09EB2F6
  8. :10005000D2EC27F09EB0C4EC27F00BC0F3FF0CC02D
  9. :10006000F4FF135016C04DF115C0E0FF14C0D8FFC7
  10. :100070001000F2B41AEC04F0A46666EC00F00BC0B9
  11. :10008000F3FF0CC0F4FF135016C04DF115C0E0FF94
  12. :1000900014C0D8FF1000176ED8CF18F0E0CF19F0B9
  13. :1000A0004DC11AF0FACF92F4FBCF91F401019EB446
  14. :1000B00000EC20F092C4FAFF91C4FBFF1AC04DF18E
(#) Hp41C válasza AZoli hozzászólására (») Szept 14, 2010 /
 
Szia!

Az asm állományról volt szó... Ha feltöltötted volna, már rég meglenne a hiba...
(#) trudnai válasza AZoli hozzászólására (») Szept 14, 2010 /
 
Szilva nem a HEX file-ra volt kivancsi, hanem a FORRAS FILE -ra, meghozza hexaban megnezve... Azaz hogy lassuk milyen sorvegjeleket hasznaltal, van-e veletlenul valami elvetemul Unicode vagy UTF8 kodolas ami miatt megbolondulhat...

Ha titkos a forras, akkor szedd ki azokat a reszeket amik titkosak es csinalj belole egy teszt asm-et ami a hibat reprodukalja es azt tedd ide fel... Enelkul csak magadra vagy utalva!
(#) tardis válasza trudnai hozzászólására (») Szept 14, 2010 /
 
Erről jut eszembe: Jártam már úgy, hogy egy header file legvégére nem tettem sortörést. Ez teljesen megborította az MPLAB-et.
(#) AZoli válasza trudnai hozzászólására (») Szept 14, 2010 /
 
Sziasztok:
Összekopiztam egy olyat, ami nálam nem fordul le:
  1. LIST      P=18f4520 F=INHX8M
  2. #INCLUDE C:/Prog/Microchip/MPASM Suite/P18F4520.INC
  3.  
  4.  
  5.         CBLOCK          0X100           ;
  6.  
  7.  
  8. ;pwm:
  9.                 PWM_1_bcf_L                             ;
  10.                 PWM_1_bcf_H                             ;
  11.                 T_PWM_1_L
  12.                 T_PWM_1_H
  13.                 PWM_2_bcf_L                             ;
  14.                 PWM_2_bcf_H                             ;
  15.                 T_PWM_2_L
  16.                 T_PWM_2_H
  17.  
  18.                 PWM_1_c
  19.                 PWM_2_c
  20.         ENDC                                            ;
  21.  
  22.         ORG     0x0000                          ;      
  23.        
  24.         MOVLW   0x20                            ;
  25.         MOVWF   T_PWM_1_L                       ;
  26.         MOVLW   0xF4                            ;
  27.         MOVWF   T_PWM_1_H                       ;
  28.  
  29.         MOVLW   0x20                            ;
  30.         MOVWF   T_PWM_2_L                       ;
  31.         MOVLW   0xF4                            ;
  32.         MOVWF   T_PWM_2_H                       ;
  33.  
  34.  
  35.         BCF     PIR1,SSPIF                      ;
  36.        
  37.        
  38. end


Ezzel az üzenettel:
Idézet:
„----------------------------------------------------------------------
Release build of project `C:\prog\Microchip\Projects\ASMoto_tars.mcp' started.
Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe v4.37
Tue Sep 14 13:47:11 2010
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "c:\Prog\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F4520 "Test.asm" /l"Test.lst" /e"Test.err"
Warning[205] C:\PROG\MICROCHIP\PROJECTS\TEST.ASM 2 : Found directive in column 1. (LIST)
Warning[215] C:\PROG\MICROCHIP\PROJECTS\TEST.ASM 2 : Processor superseded by command line. Verify processor symbol.
Error[121] C:\PROG\MICROCHIP\PROJECTS\TEST.ASM 16 : Illegal label (T_PWM_2_L T_PWM_2_H)
Error[113] C:\PROG\MICROCHIP\PROJECTS\TEST.ASM 30 : Symbol not previously defined (T_PWM_2_L)
Error[113] C:\PROG\MICROCHIP\PROJECTS\TEST.ASM 32 : Symbol not previously defined (T_PWM_2_H)
Warning[205] C:\PROG\MICROCHIP\PROJECTS\TEST.ASM 38 : Found directive in column 1. (end)
Halting build on first failure as requested.
----------------------------------------------------------------------
Release build of project `C:\prog\Microchip\Projects\ASMoto_tars.mcp' failed.
Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe v4.37
Tue Sep 14 13:47:12 2010
----------------------------------------------------------------------
BUILD FAILED
(#) Hp41C válasza AZoli hozzászólására (») Szept 14, 2010 /
 
Szia!

Ha kérhetnénk csatold, a fórum motorja megváltoztatja az állományt...
(#) AZoli válasza Hp41C hozzászólására (») Szept 14, 2010 /
 
Csatoltam.
Köszi a segítséget.

Test.asm
    
(#) Hp41C válasza AZoli hozzászólására (») Szept 14, 2010 /
 
Szia!

Már meg is van a bűnös:
A T_PWM_2_L szimbólum után közvetlenül ott vigyorog egy CR karakter... Töröld ki az összes karaktert a T_PWM_2_L és a T_PWM_2_H cimke közül, és máris fordul...
(#) AZoli válasza Hp41C hozzászólására (») Szept 14, 2010 /
 
Köszi!
Írtátok, de nem világos hogy hogyan tudom ezt megnézni pl. a T.Commanderben?
És a 7.4 simán lefordította. Közben megnéztem több régi programomat, 5-ből 3-at nem fordít le a 8.56, ilyen hibák miatt.
(#) Hp41C válasza AZoli hozzászólására (») Szept 14, 2010 /
 
Internal viewer, options / hex ...

Text1_hex.JPG
    
(#) slogan hozzászólása Szept 14, 2010 /
 
Sziasztok !

Biztos van egyszerű válasz a problémámra

Lokális változót kéne látnom Watc ablakban ? Mert hogy nem jön elő

static unsigned char mennyi=0;

Hitech 9.70 es fordítóval , Mplab 8.50 el.

Köszönöm !
(#) El_Pinyo válasza slogan hozzászólására (») Szept 14, 2010 /
 
Lokális változó csak a deklaráló függvényen belül látható, tehát ha a programvégrehajtás eléri a függvényt, melyben deklaráltad, akkor válik láthatóvá (ekkor jön létre) és addig látható, amíg a függvényen belül marad a program. Pontosan ezért lokális a változó, mert csak egy adott függvényen belül használjuk, nem kell neki állandó helyet foglalni.
(#) AZoli válasza Hp41C hozzászólására (») Szept 14, 2010 /
 
Köszi, végre megértettem.
30F6012A -t, illetve a ds-sorozatot nem fogom tudni MPasm-ben programozni? Azt írja hogy "Tool doesn't support selected device."
(#) Hp41C válasza AZoli hozzászólására (») Szept 14, 2010 /
 
Szia!

Szerintem lehet... A programodat írhatod, fordíthatod az MpLab-ban, legfeljebb a programozást kell a PICKit2 kezelő programjával csinálni.
(#) cNobody válasza Hp41C hozzászólására (») Szept 14, 2010 /
 
Szia!
Ma vettem egy HD14081-es IC-t (4db 2bemenetű ÉS kapu). Az egyik ÉS kapu egyik bemenetét tápra kötöttem a másik ment a T1OSO lábára a PIC-nek. A kapu kimenetét pedig a PK2 AUX kimenetére kötöttem (Logic tool CH3).
Semmit nem reagált a PK2. Se le- se felfutó élre. Szóval nem tudta megmérni a PK2 a 32K kvarcot. Viszont a 4MHz-es kvarcra reagált. Nyilván hülyeséget mért, de mért valamit.

Vettem 100pF-os kondit is, azzal is kipróbáltam a kvarcot, de azzal meg elsőre pár másodpercig nem indult be aztán beindult, de nem lassult annyit hogy 2 másodpercenként legyen megszakítás.
(#) vicsys válasza cNobody hozzászólására (») Szept 14, 2010 /
 
Hülye kérdés: Adtál tápot az IC-nek is?
(#) cNobody válasza vicsys hozzászólására (») Szept 14, 2010 /
 
Persze.
Akkor a 4MHz-es kvarcra se reagált volna.
Meg manuálisan kipróbáltam, voltmérővel mértem a kimenetet, és a szabadon maradt bementet hol földre, hol tápra tettem, és megfelelően működött.
(#) cNobody válasza cNobody hozzászólására (») Szept 14, 2010 /
 
Olyan is eszembe jutott az előbb hogy a config vajon jó?
Csatoltam az adatlapból a T1CON regiszter leírását.

T1CON=0b00001111; ezzel a beállítással dolgozik most.

A 0. és 1. bit világos.
A 2. bitet nem értem (lefordítani le tudom). Mihez szinkronizálna?
3. bit A külső oszcillátort engedi vagy nem engedi bejutni? Jól értelmezem a block diagram alapján?
4.-5. bit a bemenő órajelet osztja ezt vágom.
6. bit nem vágom
7. bit meg azt állítja hogy egy 16bites regiszterként vagy 2db 8bitesként kezelje a TIMER1et.

Valaki elmondaná ami nem világos?
Meg hogy akkor jól tippeltem azoknál a beállításnál amik nem voltak világosak?
(#) Hp41C válasza cNobody hozzászólására (») Szept 14, 2010 /
 
Szia!

- Készíts egy tesztprogramot, ami a RC0 és RC1 lábakat kimenetnek kezeli és eltérő hullámformát tesz ki rájuk. A programból vedd ki a T1 oszcilátorának engedélyezését és a kapcsolásból a 32.768kHz-s kvarcot. Nézd meg működnek-e a port kivezetések....
- Az eredeti programban nézd meg, hogy a RC0 és RC1 nincs véletlenül kimenetnek beállítva...
Következő: »»   799 / 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