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   1 / 29
(#) bozsokiandras hozzászólása Máj 15, 2006 /
 
Léptetőmotor vezérlést szeretnék építeni piccel (pic16f84-re gondoltam). Először csak egy sima step/dir vezérlést akarok, majd később bővíteni pwm-mel meg egyéb dolgokkal.
Az előre és hátra léptető eljárást már megírtam mikropascalban, csak az a probléma, hogy nem tudom hogy kell megoldani a bemenetről történő vezérlést. Addig oké, hogy a porta lesz a bemenet (trisa:=255), de utána hogy kell beolvasni az adatokat róla és hogy oldjam meg, hogy csak akkor lépjen a motor ha jelet kap a step lábon?
Simán elég if port a=1; vagy megszakítást is kell kezelni és ha kell akkor hogyan?
(#) Báddzsó válasza bozsokiandras hozzászólására (») Máj 15, 2006 / 4
 
jaja, simán elég az if porta... megszakítást úgy sem kezel minden lábán a pic. egyébként meg sztem használj 16f628a-t vagy 16f627a-t. 99,8% ua. mint a 16f84 csak fele annyiba kerül, meg van benne belső oszci, +néhány cucc.
mikropaszkalhoz nem értek, de gondolom úgy kell megadni melyik láb, hogy porta.X=1 X helyén a portnak az a lába amelyiket lekérdezed, hogy milyen logikai állapot van rajta.


progi:
kell egy folyamatosan pörgő progi ami nézi a 2db bemeneti lábat: (ez most sima egy lépéses megoldás, de ha féllépésesre akarod akkor 8 állapot kell)

eleje:
if porta.0=1 then
if porta.1=1 then valami=valami-1
if valami=0 then valami=4
endif
if porta.1=0 then valami=valami+1
if valami=4 then valami=0
endif
endif
if valami=0 then kimenet=121 (kimenet helyett ihatsz portb-t is és akkor a uccso elötti elötti sor nem kell, gondolom van select case v hasonló utasitás amivel "szebbé" lehet tenni és nem ilyen if-es.)
if valami=1 then kimenet=82
if valami=2 then kimenet=423
if valami=3 then kimenet=121
portb=kimenet
pause 13
goto eleje


soxerencsét!
(#) sirály12 válasza bozsokiandras hozzászólására (») Máj 15, 2006 /
 
eléteszel egy 74ls191-est, ez lekezeli a lépések számlálását és az irányt, ezzel sem kell a picnek szenvedni. Kapcsolási rajz bővebben a hobbycnc oldalon: pdf

Én is így csinálnám meg.
(#) Báddzsó válasza bozsokiandras hozzászólására (») Máj 15, 2006 /
 
ja ezt is nézd meg: http://www.dakeng.com/u2.html
katt
(#) Báddzsó válasza sirály12 hozzászólására (») Máj 15, 2006 /
 
de gondolom azzal nem oldható meg a féllépés, meg a pwm?
(#) sirály12 válasza Báddzsó hozzászólására (») Máj 15, 2006 /
 
Ha megnézed a rajzot, akkor láthatod, hogy a pwm simán megoldható, mint ahogy meg is van benne oldva. Ez egy hobby cnc vezérlő kapcsolási rajza, ami léptetőmotorokat használ és pwm-ben hajtja őket.
A féllépés is megoldahtó.
(#) kokok hozzászólása Jún 22, 2007 /
 
Sziasztok
Nem akartam új topikot nyitni ezért ide írok.
Most kezdtem el foglalkozni mikropascal-al, ebbe kérném a segítséget.
Nem tudom hogy tudok olvasni bemenetet.
Írtam egy ilyet de nem akar működni

program pp;
begin
trisa:=1;
trisb:=0;
repeat
begin
if porta.0=1 then PORTB := 128
else portb:=0;
end;
until 0 = 1;
end.

az volt a tervem hogy az RA.0 portról olvasok ha az értéke 1 akkor az RB.7 -et bekapcsolja, de nem akar működni.
(#) Slope válasza kokok hozzászólására (») Jún 22, 2007 /
 
Ezt hexába add meg:
trisa:=1;
trisb:=0;

helyesen:
trisa:=0xFF;
trisb:=0x00;

A Te beállításodnál a csak porta 0. bitje bemenet, illetve csak a portb 0. bitje kimenet.


(#) kokok válasza Slope hozzászólására (») Jún 22, 2007 /
 
Köszönöm a választ, de sajnos még most se akarja azt csinálni amit én szeretnék.
Úgy néz ki nem akarja olvasni a portot, már póbáltam másikra tenni de ott se olvas.
(#) Slope válasza kokok hozzászólására (») Jún 22, 2007 /
 
Akkor próbáld nagy betűkkel. Már vagy egy éve nem foglalkoztam pascal nyelvel, és ezzel a programmal sem, de megkerestem egy régebbi programom, és ott nagybetüket használtam.
TRISA
TRISB
PORTA
PORTB
stb....
(#) kokok válasza Slope hozzászólására (») Jún 22, 2007 /
 
Ok
Megpróbálom remélem működni fog. Sajnos most már vége a munkaidőmnek, most már nem tudom kipróbálni. Ha kipróbálom jelezni fogom hogy működik vagy nem.
Köszi a segítséget
(#) Slope válasza kokok hozzászólására (») Jún 22, 2007 /
 
OK! Nincsmit!
(#) gozi válasza kokok hozzászólására (») Jún 23, 2007 /
 
Itt inkább az lesz a probléma, hogy nem gondoltatok a többi periféria beállítására. Mivel a PIC típusa nincs leírva ezért általánosságban írom le a dolgokat:
16F-eknél a legtöbbször hiba a komparátor kikapcsolásának elmulasztása (CMCON regiszter).
18F-eknél pedig a portokat át kell kapcsolni digitálissá (ADCON1 regiszter).
(#) gozi válasza Slope hozzászólására (») Jún 23, 2007 /
 
Idézet:
„A Te beállításodnál a csak porta 0. bitje bemenet, illetve csak a portb 0. bitje kimenet.”


Ezt gondold át mégegyszer...
(#) Norberto válasza gozi hozzászólására (») Jún 23, 2007 /
 
A MikroPascal egyébként ezt elfogadja?

trisa:=1;
trisb:=0;


Mert számomra elég érdekesnek tűnik, hogy egy egész bájtnyi értéket így "definiálunk"...persze, ha ezzel nincs baja a fordítónak, akkor nincsen gáz...

Azért kérdezem, mert nem tudom, hogy ez a megadás így helyes-e jelen programnyelv esetében
(#) kokok hozzászólása Jún 23, 2007 /
 
A mikropascal nem adott ki hibát a "trisa:=1;" utasításra hiba nélkül fordította, a pic tipusát igaz nem írtam mivel ezt egy menübe kell beállítani, egyébként 16F628-ról van szó.
A kimenetet szépen tudom kapcsolgatni ahogy akarom, csak adatot nem tudok beolvasni vele. Most ismerkedem a mikropascal-al, és próbálok rájönni hogy is működik.
Sajnos most az elején már elakadtam egy ilyen egyszerű dolognál, mint az adat beolvasás valamelyik lábról.
(#) szabi_o hozzászólása Jún 23, 2007 /
 
A legújabb mikroPascalhoz(6.0.0.2) lenne szükségem gyógyításra, ha valaki tudna segíteni.
(#) Norberto válasza szabi_o hozzászólására (») Jún 23, 2007 /
 
Azt hiszem, ez talán működni fog
(#) szabi_o válasza Norberto hozzászólására (») Jún 23, 2007 /
 
Húú, köszönöm szépen, ez gyors volt!
(#) Slope válasza gozi hozzászólására (») Jún 23, 2007 /
 
Ok egy kicsit tényleg sántít, arra akartam rámutatni, hogy egy 8bites regiszternek adott értéket 1 bittel (csak egy kicsit furcsán jött ki ).

Viszont az F628 tartalmaz komparátort az A porton (mint ahogy arra gozi kollega is utalt)
Az ADCON0 regiszterben lehet kikapcsolni, ha jól emlékszem az alsó 3 bit aktív állapotában van kikapcsolva.

ADCON0 := 0x07;
(#) gozi válasza Slope hozzászólására (») Jún 24, 2007 /
 
Idézet:
„ADCON0 := 0x07;”

Helyesen: CMCON:=0x07;
Vagyis, ahhoz, hogy bemenetként működjön a PORTA.0, ahhoz ki kell kapcsolni a komparátorokat a fenti utasítással.
(#) gozi válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Azzal az utasítással, hogy trisa:=1; decimálisan írtuk be az értéket a regiszerbe. Ez megfelel 0x01-nek vagy 0000 0001-nek! Értelemszerűen, mivel nyolcbites regiszterről van szó, ezért deximálisan a legnagyobb kiküldhető érték 255(d)=1111 1111(b)=FF(h). Vagyis minden érték, amit nem definiálunk, hogy milyen számrendszerben van, mindig decimálisként lesz kezelve! Ez minden "normális" fodítónál így van.
(#) Slope válasza gozi hozzászólására (») Jún 24, 2007 /
 
Hiába... egy éve már AVR-el játszom...

Köszi a javítást!
Üdv!
(#) kokok válasza gozi hozzászólására (») Jún 25, 2007 /
 
Köszönöm a segítséget a CMCON:=0x07; beírása után már működik is a program!
(#) kokok hozzászólása Jún 25, 2007 /
 
Még egy kérdés
A pic 16f877-nél is igy kell beállítani?
(#) gozi válasza kokok hozzászólására (») Jún 25, 2007 /
 
Nem, mivel a 16F877 rendelkezik A/D konverter perifériával, így ott azt kell kikapcsolni az ADCON1:=6; utasítással.
(#) kokok válasza gozi hozzászólására (») Jún 25, 2007 /
 
Ha nem a RA portokra akarok digitális bemenetet csinálni 16F877-re hanem pl: RC-re akkor gondolom nem kell "ADCON1:=6" utasítás, vagy ott is kell?
Bocs ha kicsit hülyeségeket kérdezek, de szertném megtanulni, nem tudom ezeket a PIC adatlapjában meglehet találni mikor mit kell csinálni?
(#) Slope válasza kokok hozzászólására (») Jún 25, 2007 /
 
Meg lehet... minden benne van

Üdv!
(#) Norberto válasza (») Jún 26, 2007 /
 
Címben megnevezett programhoz tartozó angol nyelvű leírások csatolva...!

Kitömörítés: WinRAR, vagy hasonló kaliberű tömörítő-programmal...
(#) Norberto hozzászólása Jún 29, 2007 /
 
Hátha észreveszi egy illetékes ezt az értéket!
Következő: »»   1 / 29
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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