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   9 / 29
(#) gthomas hozzászólása Ápr 8, 2009 /
 
Sziasztok!

Van egy ilyen relém TIANBO TR5V. Ráköthetem szerintetek közvetlenül a PIC lábára?

TIANBO TR5V
(#) pako válasza gthomas hozzászólására (») Ápr 8, 2009 /
 
Üdv!
A tekercsben indukálódó fesz miatt nem javaslom. Végülis nem foglal sok helyet egy tranzisztor, azon szerintem ne spórolj.
(#) gthomas válasza pako hozzászólására (») Ápr 8, 2009 /
 
Akkor berakom. A hely egy kicsit szűkös...
(#) lgyk válasza gthomas hozzászólására (») Ápr 8, 2009 /
 
Hi!

Rakj a relével párhuzamosan védődiódát is, mert a keletkező áram egy kisjelű tranyót is kinyírhat. Ennek nem kell sok hely...
(#) El_Pinyo válasza gthomas hozzászólására (») Ápr 8, 2009 /
 
Szia!
Semmiképpen nem javaslom, hogy egy relét közvetlenül a PIC kimenetére tedd! Nem csupán a tekercsben indukálódó feszültség miatt (annak kivédésére használható egy dióda is), hanem azért, mert a PIC kimenete nem bírja el a tekercs terhelését (Absolute maximum ratings- sink, source I/O pin current 25mA). Ha jobban leterheled, mint az előbb említett érték, akkor biztosan meg fog hibásodni a port.
Szóval szerintem ne a tranzisztoron spórolj helyet.
Üdv.
(#) gthomas válasza El_Pinyo hozzászólására (») Ápr 9, 2009 /
 
Köszi, berajzoltam a tranzisztort, diódát. Diódának 1N4001 -et gondoltam, a tranziztor BC 182 (ez van kéznél). Jó lesz?
(#) pako válasza gthomas hozzászólására (») Ápr 9, 2009 /
 
Tökéletes!
(#) m.joco hozzászólása Ápr 12, 2009 /
 
Hello
Azoknak írok, akik használják a mikropascal pic fordítóját, hogy megjelent a legújabb 2009-es változata, letölthető a MikroElektronika oldalán. Én már megnéztem, megújult a felülete, és úgy látom a rutinjaikat is átdolgozták. Remélem most már működni fog a manchester rutinjuk is
Üdv.
(#) pako válasza m.joco hozzászólására (») Ápr 12, 2009 /
 
Üdv!
Esetleg gyógyitást is tudnál mellékelni?

Amúgy pár oldallal visszább belinkeltem (itt) a 8.1-es verziót, gyógyítással, esetleg megpróbálhatod azzal is a manchestert. Az MMC library működi benne, ami 6.1-ben nem működött!
(#) m.joco válasza pako hozzászólására (») Ápr 12, 2009 /
 
Hát gyógyítást nem tudok adni, szerintem még nagyon új . Én is csak úgy akadtam rá, hogy unalomból rámentem a honlapjukra. Az a 8.1-es megvolt nekem is, de a manchester-t nem próbáltam rajta. Olvasgattam a leírását ennek az újnak, de én valami olyat olvastam, hogy a man_receive utasításai mind blokkoló utasítások? Mondjuk érthető, hiszen nem használja semmilyen megszakítását a pic-nek. Meg van benne ezért egy +utasítást, aminek a hatására abbamarad ez blokkolás - man_break. Na jó programozást, és sok piros tojást
Üdv.
(#) gthomas válasza pako hozzászólására (») Ápr 27, 2009 /
 
Hali!

Összeállt immár a kapcsoló gépezet. Még egy kis programozás és kész.
Az vettem észre, hogy a elöl álló 7805 IC melegszik. Fél óra után már elég zsizsa a felülete. Ha jól tudom ez 1A terhelhetőségű. Van ebből nagyobb teljesítményű?
Van rajta egy LCD, egy 16F887, egy 8583. Gondolom a LCD a legnagyobb fogyasztó. Mi legyen?
(#) potyo válasza gthomas hozzászólására (») Ápr 27, 2009 /
 
Nem a 7805 terhelhetőségével van a baj, mert a működési elvéből következik a melegedés. Hiába teszel oda nagyobb terhelhetőségűt, a melegedés változatlan marad...
(#) gthomas válasza potyo hozzászólására (») Ápr 27, 2009 /
 
Akkor rakjak rá valami kis bordát és jó is?
(#) potyo válasza gthomas hozzászólására (») Ápr 27, 2009 /
 
Igen, inkább azt. De vedd figyelembe, hogy a kezeden már a 60 fokos víz is égési sérülést okoz, viszont a 7805 legalább 100 fokig üzemképes, és belső túlmelegedésvédelemmel van ellátva. Szóval nem kell túlzásba se esni a védelmében.
(#) pako válasza potyo hozzászólására (») Ápr 27, 2009 /
 
Azt azért nem célszerű megvárni, hogy bekapcsoljon a hővédelem, mert lekapcsolná a PICet is meg az RTCt is. Én hűtőbordázni szoktam, de egy step-down DC-DC lenne az ideális erre. Pl lm2575 nálam nagyonis bevált.
(#) gthomas hozzászólása Máj 4, 2009 /
 
Sziasztok!

Van egy eljárás amit többször használok a program során, dátumot alakít át srtringgé, date_to_str a neve.

Fordítás során a kövekező üzenet:

Array has been split over two banks: FARG_date_to_str

Ez egymás után 4x ismétlődik.

A program lefordul, de letöltés után nem jól működik.

Miért van ez az üzenet és hogyan gyógyíható meg?
(#) tallerbator hozzászólása Máj 18, 2009 /
 
Sziasztok!

Még csak most kezdtem el mikropascalban programozni és azt szeretném megoldani, hogy ha RB6-on lévő gombot bármikor megnyomom akkor a futó program megszakad és egy másik kódot kezd el futtatni.
(#) lgyk válasza gthomas hozzászólására (») Máj 18, 2009 /
 
Hi!

Ez az üzenet csak arról szól, hogy a megadott tömböt két részre osztotta, ez a magas szintű nyelv és a processzor felépítésének összekapcsolásához kell, nem befolyásolja a program működését.

Ha a program egyéb hibaüzenet nélkül lefordul, akkor szintaktikailag OK, minden függvény megfelelő változót kap, stb.

Mit jelent a "nem jól működik"? Gyanítom, hogy a dátumot akarod LCD-re küldeni, ezért kell a string. Más stringet hiba nélkül kiír a program? Portok megfelelően vannak konfigolva?

Egyébként nem találom ezt a függvényt, ez gyárilag benne van?
(#) lgyk válasza tallerbator hozzászólására (») Máj 18, 2009 /
 
Hi!

Nézd meg a súgóban az interrupt kezelést!
(#) gthomas válasza lgyk hozzászólására (») Máj 18, 2009 /
 
Szia! Közben megfejtettem a "titkot". A program lefordul, az említett hibaüzenet, (vagy figyelmeztetés) kb. 8x ismétlődik. Ezután a program elindul, néhány funkció jól is működik. Van olyan rész,amelyik ne. Pl. az időkiiratás esetén 56. hónapot ír ki, és a beállítást nem tudom elmenteni.
Ha kiveszem az utoljára megírt programrészt, minden megjavul.

Aztán elkezdtem próbálkozni, mi idézheti elő mindezt. Van olyan eljárás, amiben meghívok egy másik eljárást is, amiben pedig egy függvénytől várom a visszatérési értéket. Nos ez volt a rossz a picnek. Szerintem a memória címzése borul fel a szétvágot eljárások miatt.
A "date_to_str" fv. egy általam írt fv. Tulajdonképpen ez volt hívogatva többször is. Ha ez a függvényt kitöröltem és beírtam oda, ahol meghívtam, elmúlt a figyelmeztetés, a prg. is jól működött. csakhogy ez memória pazarlás.

Tehát ez a tapasztalat, azonban csodálkoznék hogy ez nincs lekezelve. Amúgy most még kb. 5 sor hiányzik a programból, és ismét ezzel a problémával küzdök.

Üdv: T.
(#) tallerbator válasza lgyk hozzászólására (») Máj 19, 2009 /
 
Szia!
Nem tudnál valami konkrétabb példát írni mert ami a helpben van azt nem igazán értem.
(#) gthomas hozzászólása Jún 1, 2009 /
 
Sziasztok!

Letöltöttem a Mikropascal Pro 2009 verziót, de a program hibaüzenettel leáll: Demo Limit.

Esetleg van valakinek javító programja amivel ez a hiba kiküszöbölhető?
(#) m.joco hozzászólása Jún 2, 2009 /
 
Hello
Próbálta valaki már Mikropascalban a hardveres uart-ot? Két picet kötöttem így össze, az egyik gombnyomásra kiküld egy bizonyos bájtot, a másik pedig ezen bájt fogadása esetén NOT-olja az egyik kimenetét, amelyen LED van. Nem nagyon működik, csak néha kapcsol be/ki a LED. Valamit rosszul csinálok?
Üdv.
(#) pako válasza m.joco hozzászólására (») Jún 2, 2009 /
 
Üdv!
Valamit akkor biztos rosszul csináltál, mert működnie kell!
Rx/Tx lábat felcserélted a 2 PIC között? (Rx a Tx-re, Tx az Rx-re)
Illetve mekkora a táv a 2 PIC között?
(amúgy lehet, hogy a NOT parancsal van a gubanc a pascalban, néha nekem sem működik, próbálj ki másféle visszajelzést a vételről)
(#) gthomas hozzászólása Jún 3, 2009 /
 
Sziasztok!

Nem haladok a programommal, nem tudom mi a hiba, segítsetek.

a main valahogy így néz ki:
//-----------------------------
read_PORTA;
menu:=menu+fel-le;

if menu>=max_menu then menu:=0;
if menu=0 then displaytime;
if menu=1 then settime;
//-----------------------------

induláskor menu=0;
ha kiveszem az utolsó sor (if menu=1 then settime a program refordul, a kijelzőn megjelenik az óra.
Ha vissza rakom az if menu=1 then settime; sort, a program lefordul, de nem jelenik meg semmi. Azaz mintha nagyon gyorsan villogna a kijlző első sora. Induláskor menu=0, tehát az utolsó sornak nem kellene befolyásolni a működést.
A settime proc. szinte üres nem csinál semmi különöset

Mellékelem a programot, hátha valaki belenézne. Köszönöm.

ontozo2.zip
    
(#) pako válasza gthomas hozzászólására (») Jún 4, 2009 / 1
 
Üdv!

Ennyi utasítást még nem láttam interruptban. Szerintem mire elér a feléig, már jön is a következő megszakítás. Vagyis csak jönne, mert az interrupt elején az IntCon:=$20-al kikapcsoltad a megszakítást, de a végén be is kell kapcsolni. (IntCon:=$A0). Ezen kívül, hogy ne érkezzen túl hamar a következő megszakítás, a Tmr0 értékadását is áttettem az interrupt végére. A főprogramba pedig raktam 100 ms késleltetést, hogy kiszűrje a nyomógombok pergését.
A főprogi végén van +6 sor kapcsos zárójelben, ha kiveszed a zárójelet, akkor addig megáll a progi, amíg el nem engeded a gombokat.

ontozo2.rar
    
(#) gthomas válasza pako hozzászólására (») Jún 4, 2009 /
 
Köszi, este kipróbálom, remélem megoldódik a problémám, mert már egy hete ülök rajta. Üdv: T.
(#) gthomas válasza pako hozzászólására (») Jún 4, 2009 /
 
Szia!
A helyzet változalan a Te verzóddal is. Ilyeneket próbáltam hogy a settime procból elkezdtem kikommentezni a sorokat. Egyszercsak elindul (a harmadik sor kivételekor). Azt hitem itt a hiba:

if (almenu=0) and (fel=1) then menu:=2;

A többit visszaraktam, működik. De ! ha a fenti sort visszaállítom és kiremmelem a fölöte lévőt:

read_PORTA;

akkor is megáll.

A 8.0.0.1 mikropascal ilyenkor írta az Array has been split over two banks ... üzenetet.

Ötlet?
(#) pako válasza gthomas hozzászólására (») Jún 5, 2009 /
 
Más hibát pedig akárhogy nézem nem találok benne, elvileg mennie kellene. Még esetleg azt tudnám elképzelni, hogy a read_PORTA; procnál a sok elágazás miatt kialakulhat egy végtelen ciklus (fagyás). Szerintem próbáld meg ezzel:

Procedure read_PORTA;
Begin
Le:=PortA.0;
Fel:=PortA.1;
Enter:=PortA.2;
If (Le=1) or (Fel=1) or (Enter=1) then
Begin
PortC.7:=1; // itt kinulláztad a fel, le, enter változókat, pedig szerintem nem kellene
keypres:=0;
end;
end;
(#) gthomas válasza pako hozzászólására (») Jún 7, 2009 /
 
PortC.7:=1; // itt kinulláztad a fel, le, enter változókat, pedig szerintem nem kellene

Ez a C port, ami az LCD világítását kapcsolja.Nem írtad el?
Következő: »»   9 / 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