Fórum témák

» Több friss téma
Fórum » MikroPascal kérdések
 
Témaindító: bozsokiandras, idő: Máj 15, 2006
Témakörök:
Lapozás: OK   20 / 29
(#) progee válasza zsoltee0001 hozzászólására (») Ápr 1, 2012 /
 
működik!

csak hogy okosodjak.
az ott szereplő oszcillátor beállítások mit jelentenek pontosan?
(#) zsoltee0001 válasza progee hozzászólására (») Ápr 1, 2012 /
 
Akkor neked internal rc clkout" volt beállítva ezek szerint.
A nevébe benne is van, belső oszci és ennek a jele a kimeneten, jelen esetbe 3. láb, de ha megnézed a pic adatlapját magad is láthatod.
Üdv
(#) progee válasza zsoltee0001 hozzászólására (») Ápr 8, 2012 /
 
Valami csak nem jó.
teljesen egyszerű az áramkör, mégsem akar rendesen működni.

a programozó panelemen lehet tesztelni is a pic-t, és annak a nyomógombja és ledje azt is csinálja amit mondok neki.
a PIC 12F675 2.lábán lévő nyomógomb-ra világítani kezd az 5.lábon lévő led.
viszont ha kiveszem a programozó panelből és saját áramkörben akarom tesztelni, akkor folyamatosan világít a led a nyomógomb állapotától függetlenül.
labortápról kapja a feszültséget 1-8 lábakra, de próbáltam már 3db ceruza elemmel is.
próbálkoztam 1uf, 100uf, 100nf kondenzátorokkal, amiket más kapcsolásokban láttam a betápnál.
próbáltam másik lábra tenni a ledet és annak megfelelően átírni a kódot, de ott is ugyanez a hiba fogadott..

nem értem miért működik programozó panelen, ami nem megy egy ennyire egyszerű áramkörben.

  1. begin
  2.    ANSEL.2 := 0;
  3.    CMCON:=7;
  4.    TRISIO.2 := 0;
  5.    TRISIO.5 := 1;
  6.  
  7.   while true do
  8.   begin
  9.       if gpio.5 = 1
  10.        then gpio.2 := 1
  11.        else gpio.2 := 0;
  12.    end;
  13.  
  14. end.

(itt a gpio.2 az 5.lábra mutat, a gpio.5 pedig a 2.lábra)

kapcsolás:
Bővebben: Link
(itt a 2-es lábon van a led, de én 5-ösre tettem mert a programozó panelen csak ott van led bekötve a foglalatba)

a kapcsolás egyszerűségéből gondolom, hogy bagatel problémáról lehet szó.
tudnátok segíteni?
(#) Dave87 válasza progee hozzászólására (») Ápr 8, 2012 /
 
MCLR (4-es) láb fel van húzva VDD-re ~1k ellenálláson keresztül?
(#) zsoltee0001 válasza progee hozzászólására (») Ápr 9, 2012 /
 
Hát igen, ha neked PK2 égetőd van, akkor ott megoldódik az Mclr felúzás, külső panelen erről különgondoskodni kell, mondjuk inkább 10k-s ellenállás ami oda kell.
Más egyéb hibát nem tartok elképzelhetőnek.
Erre nagyon oda kell figyelni, nekem már volt, hogy ennek hiánya miatt tönkrement PIC, ráadásul nem is pár száz forintos.
Üdv
(#) progee válasza Dave87 hozzászólására (») Ápr 9, 2012 /
 
eddig nem volt. most rákötöttem, de a hiba megmaradt.
most azzal próbálkoztam, hogy a nyomógombot áttettem a 2.lábról a 6.lábra, és a kódot átírtam (trisio.5:= 1) -ről (trisio.1 := 1-re), ill (gpio.5 = 1) -ről (gpio.1 = 1) -re.
így más hibát kezdett el generálni:
a led alapesetben nem világít, csak ha a nyomógombot megnyomom, viszont a nyomógom felengedése után még világítva marad 10-20 mp-ig.
ill még egy észrevétel. ebben a bekötésben megfogom a 6.láb nyomógombhoz kötött szigetelt vezetékét (dugaszolós próbapanel), akkor amíg fogom, addig világít a led
(#) zsoltee0001 válasza progee hozzászólására (») Ápr 9, 2012 / 1
 
Minden bemenetet fel kell húzni szintén 10k-s ellenállással (azt hittem ezen már túl vagy), vagy le kell húzni attól függően mit kapcsolsz a bemeneten.
A lényeg, nem lebeghet!
(#) progee válasza zsoltee0001 hozzászólására (») Ápr 9, 2012 /
 
amatőr vagyok teljesen
működik.
10k ellenállás ment a vdd és vpp közé, ill 10k ellenállás a vdd elé. így működik. a led előtét ellenállását viszont kivettem, mert nagyon halvány volt.
köszönöm a segítséget!
(#) zsoltee0001 válasza progee hozzászólására (») Ápr 9, 2012 /
 
Azt ne vedd ki!
Túlterhelheted, és szevasz lesz a PIC kimenetének, minimum 330k-s kell!
Ha nem elég erős a fény (nagy fényerejű led) akkor használj tranzisztort.
Üdv
(#) kissi válasza progee hozzászólására (») Ápr 9, 2012 /
 
A Vdd és Vpp közé kell a 10k, de a Vdd elé ne köss ilyet! A LED-nél hagyd bent a 330 ohmost ( zsoltee0001 nem 330k! )!

Steve
(#) progee válasza kissi hozzászólására (») Ápr 9, 2012 /
 
az a helyzet, hogy a vdd és vpp közé tett ellenállással is produkálta a hibákat.
azóta működik jól, mióta a vdd előtt is ugyanakkora ellenállás van, mint a vdd és vpp között..
a lednél egy 470-es ellenállás maradt.
(#) kissi válasza progee hozzászólására (») Ápr 9, 2012 /
 
Hát... ha a tápfesz és a Vdd közé beraktál egy 10k-s ellenállást, akkor az nem lehet jó, legfeljebb úgy tűnik !

Steve
(#) progee válasza kissi hozzászólására (») Ápr 9, 2012 /
 
ha nincs ott az ellenállás akkor folyamatosan világít a led.
szerinted hogyan kellene helyesen megoldanom, a fenti hibaleírásokat és kapcsolást figyelembevéve?
(#) Dave87 válasza progee hozzászólására (») Ápr 9, 2012 /
 
Összedobtam ISIS-ben a kapcsolást, ugyanazt a kódot használtam amit te is írtál, szimulációban működött a csatolt képen látott beállításokkal, próbáld lefordítani úgy a kódot, mennie kell.
(#) kissi válasza progee hozzászólására (») Ápr 9, 2012 /
 
Én assemly-ben programozom a 12F675-t, ha átküldöd a hex-et és a config beállításokat is, akkor esetleg ránézek. A programodat néztem, szerintem jó ( de nem ismerem a pascal szintaktikáját pontosan!), szerintem hardveres problémád lehet ( erre utal Dave87 válasza is!) !

Steve
(#) progee válasza kissi hozzászólására (») Ápr 9, 2012 /
 
dave kapcsolásával is folyamatosan világít a led.
azóta másik fórumon is olvastam, hogy a bemeneti tápfeszt ellenálláson keresztül kell rávinni az 1.es lábra.
így működik is rendesen.
azóta tovább is léptem a problémától, és a nyomógombra történő ledvilágítást kiegészítettem volna úgy, hogy a nyomógomb egyszeri megnyomására bekapcsol a led és folyamatosan világít a nyomógomb következő megnyomásáig.
sajnos nem működik ez sem
ezt úgy próbáltam megoldani, hogy deklaráltam egy boolean változót, amit a nyomógomb állít igaz-hamis állásba, majd ennek az értékétől függően kapcsolja ki-be a ledet.
itt abba botlottam, hogy a led nem tartja meg a stádiumát, tehát a bekapcsoló gomb elengedése után el is alszik.
le is butítottam a programot annyira, hogy csak bekapcsolja és hagyja úgy a ledet, de így is kialszik a fény.
  1. var on_off: boolean;
  2.  
  3. begin
  4.    TRISIO.0 := 0;   //led1
  5.    TRISIO.4 := 1;   //on-off kapcsoló
  6.    ANSEL := 0;
  7.    CMCON:=7;    
  8.  
  9.    on_off := false;
  10.    
  11.    while true do
  12.    begin
  13.      if gpio.4 = 1 then on_off := true;
  14.      if on_off = true then gpio.0 := 1;
  15.    end;
  16. end.


próbálom nem elveszíteni a lelkesedésemet ennyi számomra megmagyarázhatatlan hiba láttán sem
(#) kissi válasza progee hozzászólására (») Ápr 9, 2012 /
 
Oda biztos nem kell ellenállás ( a betáphoz! ), szerintem ne menj tovább, amíg meg nem oldod, mert felesleges szívások lehetnek !

Az új programodba késleltetés is kellene, hogy el bírd engedni a gombot!

Steve
(#) Dave87 válasza progee hozzászólására (») Ápr 9, 2012 /
 
Próbáld meg ezt:

  1. program asd;
  2.  
  3. var on_off : boolean;
  4.  
  5. begin
  6.    ANSEL := 0;
  7.    CMCON:=7;
  8.    TRISIO.2 := 0;
  9.    TRISIO.5 := 1;
  10.  
  11.   on_off := false;
  12.  
  13.   while true do
  14.   begin
  15.    if gpio.4 = 1 then
  16.    begin
  17.     on_off := not on_off; // ha on_off true akkor false lesz, ha false akkor true lesz
  18.  
  19.     if on_off = true then // ha on_off igaz
  20.      gpio.0 := 1 else      // led bekapcs, egyébként
  21.      gpio.0 := 0;
  22.      
  23.     while gpio.4 = 1 do nop; // amíg nyomva tartod a gombot, a program vár, ha felengeded tovább lép
  24.    end;
  25.        // kikapcs.
  26.   end;
  27.  
  28. end.
(#) kissi válasza Dave87 hozzászólására (») Ápr 9, 2012 /
 
Kell késleltetés ( hacsak a pascal fordító nem lassítja le nagyon a program végrehajtását!), mert a nyomógombok többsége "prell"-es!

Steve
(#) Dave87 válasza kissi hozzászólására (») Ápr 9, 2012 /
 
  1. while gpio.4 = 1 do nop;


Amíg fel nem engedi a gombot, nem történik semmi. Ennyi nem elég?
(#) kissi válasza Dave87 hozzászólására (») Ápr 9, 2012 /
 
Nem, mert felengedéskor újra pereghet... ( assemblyben ennek a végrehajtása kb. 1us a belső oszcillátorral és azalatt még újra hozzáérhet akár többször is, aminek az eredménye a "bizonytalan" be-kikapcsolás! --> de lehet, hogy a pascal ezt kompenzálja, mint írtam )!

Steve
(#) progee válasza Dave87 hozzászólására (») Ápr 9, 2012 /
 
  1. ANSEL := 0;
  2.    CMCON:=7;
  3.    TRISIO.0 := 0;   //led1
  4.    TRISIO.4 := 1;   //on-off kapcsoló
  5.  
  6.    on_off := false;
  7.  
  8.  while true do
  9.   begin
  10.       if gpio.4 = 1 then on_off := not on_off;
  11.      
  12.       if on_off = true then gpio.0 := 1 else gpio.0 := 0;
  13.  
  14.       while gpio.4 = 1 do nop; // amíg nyomva tartod a gombot, a program vár, ha felengeded tovább lép
  15.      
  16.       delay_ms(200);
  17.   end;



no csak összehozzuk.
a tápnál lévő ellenállást áttettem dave rajza alapján a gomb utáni részre. itt valamit én bénázhattam az előzőek alapján.
a dave forrását kijavítottam kissé a fentiek szerint.
trisio.2 és trisio.5 hibásan van benne, ill a gpio.4 vizsgálatától is kivettem a begin-end-et.
már csak annyi baja van, hogy a lenyomva tartott gomb esetén kettőt villan a led, viszont ha csak gyorsan lenyomom, akkor korrektül működik.
(#) zsoltee0001 válasza progee hozzászólására (») Ápr 9, 2012 /
 
Nincs meghatározva false-nál mit csináljon.
Az utolsó hsz-ben szereplő program se jó, mert mi van, ha pont a 200ms-es időzítés alatt érkezik a gomb lenyomás?
Pergésmentesítésre ezt ajánlották anno:
  1. if Button(GPIO, 2, 1, 0) then

Üdv
(#) progee válasza zsoltee0001 hozzászólására (») Ápr 9, 2012 /
 
de megvan:

  1. if on_off = true then gpio.0 := 1 else gpio.0 := 0;
(#) zsoltee0001 válasza progee hozzászólására (») Ápr 9, 2012 /
 
Bocsi, azt a 1206330 hsz-re írtam, csak nem vagyok folyamatosan gép előtt, így nem volt időm végigolvasni az összes hsz-t.
Mivel még húsvét lévén is melózok.
Röviden össze tudnád foglalni, hogy jelen pillanatba mi az elvárás?
Üdv
(#) progee válasza zsoltee0001 hozzászólására (») Ápr 9, 2012 /
 
szándékosan lett lebutítva abban a kódban, hogy tudjam tesztelni az ott leírtakat és kideríteni a hiba okát.
a button-t sajnos nem érti a mikropascal 12f675 esetében
(#) robing16 hozzászólása Ápr 28, 2012 /
 
Sziasztok!

A segítségeteket szeretném kérni egy PIC & Ethernet kérdésben.
A MikroElektronikától vásároltam egy ReadyForPIC nevű alaplapot, amihez még vásároltam egy MikroEth100 -as kiegészítő modult.

Célom az lenne, hogy Etherneten a PIC-be beprogramozzak egy kis weboldalt, amin a PIC többi lábán lévő állapotokat Pl:AD Konverter állapotokat le tudjam kérdezni.

Odáig eljutottam, hogy a MikroElektronika az Ethernethez ad egy Package fájt, amit a MikroPascal programba bele kéne integrálni. Ha beintegráltam, el fogom érni programon belül azokat a függvényeket, amik kezelni fogják az adott eszközt.

A beintegráláshoz egy Package_Manager programot kell használni, ami szintén letölthető a MikroElektronika oldaláról. Az oldalon megtalálhatóak a lépések, amikkel installálható az adott csomag, ám nekem hibát jelez.

A mellékelt képen látható a hiba, a program TEMP mappájába létrejön pár fájl, de azt már nem tudom, hogy velük mit kellene csinálni. Hasonló fájlokat találok ugyan a MikroPascal könyvtárában, be is másolom őket, de akkor sem töltődik be az adott modul.


Hogy lehetne ezt a hibát megoldani? Köszönöm előre is!
(#) Ktulu hozzászólása Máj 20, 2012 /
 
Okosítást tud esetleg valaki MikroPascal PRO for PIC 5.30 vagy újabb verzióhoz?
(#) Dave87 válasza Ktulu hozzászólására (») Máj 20, 2012 /
 
Milyen "okosítás"-ra gondolsz? Itt van egy s más, ha ilyenekre gondoltál: Dany's PIC tips, software and projects in mE's mikroPascal
(#) Ktulu válasza Dave87 hozzászólására (») Máj 20, 2012 /
 
Kulcs/törésre.
Következő: »»   20 / 29
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