Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   125 / 1320
(#) gulasoft válasza watt hozzászólására (») Jan 12, 2008 /
 
Igen, köszi, Én is most jutottam el pont idáig, hogy megnézem a TRISA-t, de akkor ezek szerint jó nyomon jártam én is. Köszönöm szépen, mindjárt nekiesek.
(#) MPi-c válasza neomur hozzászólására (») Jan 12, 2008 /
 
Elinduláshoz próbáld ezt. A PIC18-asok utasításkészlete bővebb, azt az adatlapokban megtalálod.
(#) gulasoft hozzászólása Jan 12, 2008 /
 
Na sikeresen kiheréltem vicsys progiját, a kijelzőn már csak a CSOHO felirat és mellé a fok jelenik meg, már csak azt nem tudom, hogy maga a fok hol a fenében van számolva.
Ja TRISA állítás bejött, ég a led, most már csak a hőfoktól kell függővé tenni, hogy kap e ott 5V-ot vagy nem.
(#) watt válasza neomur hozzászólására (») Jan 12, 2008 /
 
Igen, az assembler a fordító, az assemly maga a nyelv.
Töltsd le az MPLAB-ot a microchip-től, ingyenes.
Kezdheted a tanulást a belinkelt anyaggal, de ne válasz 16F-et, mert nem érdemes. Nem olcsóbb és sokkal nehezebb programozni. Ha már a 18F-ek mennek, akkor ráérsz szenvedni a bankokkal, lapokkal!
(#) gulasoft válasza gulasoft hozzászólására (») Jan 13, 2008 /
 
Ehh, ezt a 16f84A-t nem lehet nyomkövetni, de mindjárt kicserélem egy 16f628A-ra(ha van itthon), lábkiosztás stimmel, csak a 628-as többet tud, de gondolom ha nem használom a plusz tudást, akkor csak elzörög a sima 84A kódjával.
Egyszerűen nem találom a hőfokot az asm kódban, pedig azt hittem megvan (DS_RAM0), de nem nyert.
(#) szabi83 hozzászólása Jan 13, 2008 /
 
Kilóméterórát csinált-e valaki?
Nem találok

(#) watt válasza szabi83 hozzászólására (») Jan 13, 2008 /
 
Hát így külön nem tudok de én írtam már ilyen programot egy fedélzeti komputerbe(ami kész, csak még nem építettem be). Ha eseteg írni akarsz progit, akkor esetleg néhány ötletet tudok adni. Egyébként nem nagy kaland, sokkal fontosabb, hogy a járműben legyen jeladó!
(#) szabi83 válasza watt hozzászólására (») Jan 13, 2008 /
 
Sajna még nem értem, a pic lelkivilágát, ezért is kerestem. Pic es dolgot már építettem, de az más tészta.

Vicsys tachométer módosításával lehetséges-e
Persze 4MHz-es qvarc-al

Hall ic van, mint jeladó (TLE4905L), 16F84A és 2*16 lcd van kéznél.

Feszültségmérés, az mennyire macerás ? 20 - 30 V


(#) szabi83 válasza szabi83 hozzászólására (») Jan 13, 2008 /
 
egyenfesz, két 12Vos zselés aksi
(#) watt válasza szabi83 hozzászólására (») Jan 13, 2008 /
 
Igen ez egy jó kiindulás, csak a kapott értékeket kell átgyúrni.
A feszmérés 16F84A-val problémás, mert nincs benne AD, csak komparátor. Külső AD csatlakoztatásával megoldható, de akkor inkább másik PIC-et kell választani, mert az olcsóbb.
(#) szabi83 válasza watt hozzászólására (») Jan 13, 2008 /
 
Másik pic, akkor ugrik a "kindulási alap"

Tudom a 16f628 hassonló, csak azom foglalt.

Így egyenlőre pihen a dolog

Azért, köszi
(#) watt válasza szabi83 hozzászólására (») Jan 13, 2008 /
 
A 628-ban sincs AD.
(#) BlackStar hozzászólása Jan 13, 2008 /
 
Sziasztok!
Szeretném a segítségeteket kérni. Építettem egy kacsolást hőmérséklet mérésre. ( PIC18LF2525, 4MHz rezonátor,eeprom , szenzor ,led és egy nyomógomb ) Az áramkör 3v üzemel ill. üzemelne. Csak akkor hajlandó elindulni a pic ha az RB porton valamelyik lábat alacsony szintre húzom. Az RB portra csak a nyomógomb kapcsolódik (RB4) a többi láb szabad ill az RB7,RB6 a programozáshoz ki van vezetve tüskesorra. Az áramkört ICD2 programozom akkor semmi gond minden ok. Programozás után csak akkor hajlandó menni ha valamelyik RB portot alacsony szintre húzom. Miért
Van valami ötletetek?
A válaszokat előre is köszönöm.
(#) potyo válasza BlackStar hozzászólására (») Jan 13, 2008 /
 
Az alacsony feszültségű programozást (LVP) letiltottad?
(#) gulasoft hozzászólása Jan 13, 2008 /
 
Fene megeszi, a 628-as sem debugolható rendesen. Ha valaki időmilliomos megtenné, hogy megmondja, hogy a vicsys féle hőmérőben melyik a hőfok decimálisan, azt megköszönném.
(#) BlackStar válasza potyo hozzászólására (») Jan 13, 2008 /
 
Igen le van tiltva az LVP. A programot CCS C ben írom.
A RB4 bemenet és a többi RB prort kimenetnek van beállítva.

konfig:
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOCPD,NOSTVREN,NODEBUG,NOWRT,NOWRTD
#fuses NOEBTR,NOCPB,NOEBTRB,NOWRTC,NOWRTB,NOPBADEN,MCLR,NOLVP
#use delay(clock=4000000)
(#) szabi83 válasza watt hozzászólására (») Jan 13, 2008 /
 
az gáz
(#) potyo válasza BlackStar hozzászólására (») Jan 13, 2008 /
 
AD átalakító le van tiltva a porton?
(#) neomur válasza MPi-c hozzászólására (») Jan 13, 2008 /
 
köszi
ez az oldal sztem jó is lesz, hogy megértsem a dolgokat
bár lehetne kevésbé rózsaszín a háttér, mert 4 oldal végigolvasása után már kicsit fáj a szeme, és a szépérzékem is erősen romlott ettől a takonyrózsaszíntől
(#) BlackStar válasza potyo hozzászólására (») Jan 13, 2008 /
 
Egyedül az RA0 port AD a többi digit kimenet.
(#) szilva hozzászólása Jan 14, 2008 /
 
Hali!

Összeütöttem 18F2321-re egy soros kommunikációval (RS232) használható bootloadert. Úgy néz ki, egész jól működik, a használatához nincs szükség PC oldalon semmi másra, csak egy soros terminálprogramra (pl. Hyperterm), és a megfelelően lefordított .hex filera.

Akit érdekel, esetleg nézze meg, véleményeket, további ötleteket szívesen veszek.

Bővebben: Link

(#) trudnai válasza BlackStar hozzászólására (») Jan 14, 2008 /
 
Mit jelent, hogy "nem megy"? Decoupling kondi ott van a Vdd-Vss kozott?Allandoan resetalodik a pic, vagy mi tortenik pontosan? WDT, BOR stb reset nem lehetseges veletlenul? Vagy akar valami stak over/underflow stb ami az RB4 allasatol fugg?

Ki kellene tenni egy-ket portra "debug jeleket" es megnezni scoppal hogy mi az abra, vagy pl resetre ratenni egy ledet, hogyha X tupisu reset van akkor gyujtsa ki a pirosat, ha Y akkor a zoldet stb.

Amugy valosznuleg konyebben lehetne segiteni ha lenne kapcsolasi rajz meg forras kod, ezek nelkul max tapogatozni lehet a sotetben.

Udv,
Tamas
(#) BlackStar válasza trudnai hozzászólására (») Jan 14, 2008 /
 
Csak akkor fut a PIC-en a program ha az RB prort valamelyik lábát alacsony szintre húzom (a Vss rákötöm). Az áramkörben az RB porton csak az RB4 használom a többit nem.
(#) trudnai válasza BlackStar hozzászólására (») Jan 14, 2008 /
 
Akkor maskepp kerdezem:

1. Milyen oscillatorrol megy a cuccod? Kulso? Belso? Kvartz? Porog az ora? (ha belso, akkor tedd ki labra es ugy nezd meg scoppal)

2. Ha porog az oscillator, akkor
a. MCLR fel van huzva, nincs allandoan reseten az MCU?
b. Allandoan reset all elo valami miatt?
c. Valahol vegtelen ciklusba kerul?
d. Timer vagy mas megszakitas nem ter vissza?

3. Vdd es Vid mennyi? Mekkora zaj van a Vdd-n amugy? (erre sem valaszoltal: 100nF van a Vdd es Vss kozott kozel a pic labaihoz?)

4. RB4-en (mivel csak azt hasznalod) mi van ha nem huzod le? (semmit sem meselsz az aramkorrol...).

5. Mennyi a tapod terhelhetosege es ehhez kepest mennyit eszik az aramkorod?

Igy vaktaban kb ennyit tudok segiteni, de szerintem ha ezekre a kerdesekre megvan a valaszod akkor a megoldas is nagy valoszinuseggel.

Udv,
Tamas
(#) gulasoft hozzászólása Jan 14, 2008 /
 
Hát küzdök mint állat ezzel a hőmérős cuccal.
elméletileg ide mindíg befut
dscalcmax
movf DS_RAM0,W
movwf HOFOK
movf DS_SIGNMAXTMP,W
btfss STATUS,Z
goto maxisminus
maxisplus
movf DS_RAM1,W
btfss STATUS,Z
return ; case 1
movf DS_MAXTMP,W ; case 0
subwf DS_RAM0,W
btfss STATUS,C
return
goto copyacttomax
maxisminus
movf DS_RAM1,W
btfsc STATUS,Z
goto copyacttomax ; case 2
movf DS_MAXTMP,W ; case 3
subwf DS_RAM0,W
btfsc STATUS,C
return
copyacttomax
movf DS_RAM0,W
movwf DS_MAXTMP
movf DS_RAM1,W
movwf DS_SIGNMAXTMP
return


ez a kódrész a max hőmérsékletet számolja, és ha az új érték nagyobb mint az eddigi, akkor az új érték kerül a a maxba.

Az első két sort én raktam bele, elméletileg egy HOFOK nevű változóma rakja a DS_RAM0-át merthogy ugye az a hőfok.

a kód végén meg van egy ilyen:

movlw d'30'
subwf HOFOK,W
btfss STATUS,C
goto bekap
BCF PORTA,3
goto tovabb
bekap
bsf PORTA,3
tovabb

goto loop
end
ez meg ugye kivonja a HOFOK-ból a 30-at, ha nincs átvitel, azaz a HOFOK >=30-al akkor ugrik a bekapra és kigyújtja a ledet (meghúz a relé, és keringetia vizet a szivattyú), ha meg 30 alá megy a HOFOK, akkor ugye átcsordul, és eloltja a ledet, (nem húz a relé)


A jelenség az, hogy tök mindegy hány fokot mutat a kijelző, a led folyamatosan ég, azaz a HOFOK valtozó folyamatosan 30 felett van, miközben a kijelzőn most is 25 fok van.

Segítsetek légyszi, mondjátok meg, mit rontottam el, mert én már a szememet kinéztem de hibát ebben nem látok.

Az utolsó goto loop az ide ugrik vissza, tehát ez a dscalcmax minden ciklusban meghivodik:

loop

movlw 1 ; set bit 1 of LCD_ACTDS
movwf LCD_ACTDS
call dstemperature ; get temperature values of first ds1820
call dsminusconvertion
movlw DS_MIN0 ; minmax calculation
call dsminmax2tmp ; since we have not enough ram space
call dscalcmax ; ITT HÍVÓDIK MEG
call dscalcmin ; minmax calculation areas
movlw DS_MIN0
call dstmp2minmax
.
.
.
(#) Tüske hozzászólása Jan 14, 2008 /
 
Hali!

Megvettem a Vörös féle pic csomagot és volna vele egy kis gondom!

Ime:

A Pic prog v1.0-át használok!
A beállitásokat a Pic kezdőknek című kiadvány alapján állitottam be.
Rákattinva az írásra, a művelet elkezdödik majd egy kis idő múlva félbeszakad.
Az írás folyamán az Állapot mező:
törlés...
kód+id törölve
Kontroll:0000

Itt félbe is szakad, majd egy hiba üzenet jelenik meg!
Ez a következő: Íráshiba 0000

Írt: 0000
Adat: 3FFF

Mit tegyek ilyenkor? Már probálkoztam egy-két dologgal, de nem sikerült megoldanom a problémát



(#) dpeti válasza gulasoft hozzászólására (») Jan 14, 2008 /
 
nem olvastam vissza, de ha ds1820 vagy ds18s20-al méred a hőfokot, akkor valahogy teszteld le, hogy nem-e folyamatosan 85 fokot kapsz vissza, mert akkor vmi el van szúrva a kommunikációnál
(#) szilva válasza gulasoft hozzászólására (») Jan 14, 2008 /
 
1. Bankok rendben vannak? Minden változó azonos bankban van?

2. Volt már 30 fok feletti hőmérsékleted? Mert szerintem az a feltételrendszer máshogy működik, mint ahogy írtad. A subwf a W-t vonja ki a regiszterből, és akkor áll be a carry, ha a HOFOK nagyobb vagy egyenlő volt a W-nél, azaz a 30-nál. így HOFOK>=30 esetén hajtódik végre a BCF, HOFOK<30 esetén a BSF a kérdéses portbitre. Mintha pont fordítva akartad volna, nem?
(#) gulasoft válasza szilva hozzászólására (») Jan 14, 2008 /
 
Kijelzőn szépen megy a hőfok, ha megfogom az érzékelőt akkor 30 fok fölé megy.
A subwf tényleg a w-t vonja ki, és mivel a w-be dec 30-at töltöttem movlw d'30'
ezért kéne ekkor nem túlcsordulni ha 30 fölött van a csőhőfok, és ilyenkor ugrik a bekapcsolra, ami ugye most egy ledet hajt csak.
Carry akkor lesz, ha mondjuk a hofok 25.
ekkor ugye ebből kivonja a 30-at és máris carry

(#) gulasoft válasza dpeti hozzászólására (») Jan 14, 2008 /
 
mondom kijelzőn most is 28 fok van, led meg ég mint állat!
Ezt nem értem! Ha a kijelzőn tényleg extrém magas hőfokok lennének, még azt mondanám, jól megy, de nem, kasán változik, fel tudom tolni a kézmeleggel 30 fok fölé, led meg vidáman ég, mintha semmi nem történne.
Következő: »»   125 / 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