$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Declare Sub Gasadas
Declare Sub Gaselvetel
Dim T As Word 'Kapcsolok beolvasasa
Dim K As Byte 'Kapcsolo megallapitasa
' Motorhajtó L293D bemenetei
Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
'Mororok be kikapcsolása( kettö lenne majd)
Config Pind.5 = Output
E1 Alias Pind.5
Config Pind.4 = Output
E2 Alias Pind.4
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Pina.7 = Input
Porta.7 = 1
''''''''''''''''''''Főmenű'''''''''''''''''''''''''''''''
Do
Start Adc
T = Getadc(7)
If T < 1010 Then
Select Case T
Case 410 To 450
K = 1
Case 340 To 380
K = 2
Case 265 To 305
K = 3
Case 180 To 220
K = 4
Case 100 To 130
K = 5
End Select
End If
If K = 1 Then Gosub Gazadas
If K = 2 Then Gosub Gazelvetel
Loop
End
Gazadas:
Do
E1 = 1
Portc.7 = 0
Portd.6 = 1
E1 = 0
Return
Gazelvetel:
Do
E1 = 1
Portc.7 = 1
Portd.6 = 0
E1 = 0
Return
Robert írta:Mit keres a gazadas/gazelveztel cimkek utan a Do szó?
Hát ez egy valóban fogas kérdés. Lessz min egy kicsit filózgatnom:-)
Köszi Robert. Mentségemre csak azt szeretném felhozni, hogy általában kétévente egyszer kell Mc t buzerálnom és igy volt a halvány emlékezetemben.
A nyelvvel forditva van a dolog. Akkor kopik ha nem használlod.
A kevésből meg gyorsan lessz semmi:-)
Bizti beugrott volna ha a hibajelentésben nem a nulladik sor áll.
Persze voltak másik hibák is miket mivel tudtam hol vannak egyszerűbb volt kigyomlálni.
Robert írta:És mi van a select/case köztes értékekkel?
Mint kutyaütő természetssen a codfezniket használlom amik erre a boardra amim van itt ott találhatók és próbállom átszabni őket. Gondolom ezek a biztonság kedvéért vannak.
Egy ellenállássoron öt gomb van ezeket értékeli ki.
Később ez mind másképp lesz (nagyobb fába vágtam a baltát) de most a próbállgatásokhoz nekem gombokkal irányitani célszerű. Mint emlitettem nekem még nagyon gyorsan áttekinthetetlenné válik egy progi.
Úgyhogy lessz még min eleget mulatnotok:-))
Köszi és vilcsi a javitottat használlom most majd.
Egy háromfázisú generárort (12V 55A) is rá kell majd birnom motorüzemre egy igen rövid időtartamban.
Az alapkisérletet elvégeztem. Terhelve tökre gerjesztetem aztán k.b 15-20 Amperral rá a két fázisra. Lépett is egyet mint ahogy elképzeltem, tehát tudná azt helyből amire szükségem van.
Egy háromfélhidas nagy 150 Amperos hajtóm van.
Ezt használnám de persze vezérelni is illik majd.
Meg szeretném sporolni a szenzorok bebütylölését a generatorba mert ha mint léptetőmotor egy rampán felfutatva tudja amit kell akkor minek.
A hatásfok meg itt lényegtelen oly rövid ideig működne motorüzemben.
[quote="Robert"]Akkor a megvalósítás:
AD lábra egy ellenállássor és egyes darabjait ellenállással zárod rövidre?
Igen ezek már rajt vannak eredetileg a Boardon, öt darab.
Hogy tisztábban lásd. Egy Motornak a gázt és szivatót mükédtető szervóit kell most kapcsolgatni tudnom, hogy az ott beépitett potik értékeit a gyakorlatban meg tudjam állapitani (milyen fordulaton , terhelésen hőmérsékleten hol álnak stb) és ezt aztán táblázatba foglalni amit majd a progi használlni fog. Az egész teljessen automatikussan fog majd mükszeni ha a mindenható ist úgy akarja:-).
'Itt a kontrolledek vannak amik Vcc re vannak kötve. Ha egy a
'hozzájuk tartozó kapcsoló nullára kerül kell majd égniük.
Config Pinc.0 = Output
Lg1 Alias Pinc.0
Config Pinc.1 = Output
Lg2 Alias Pinc.1
Config Pinc.2 = Output
Lc1 Alias Pinc.2
Config Pinc.3 = Output
Lc2 Alias Pinc.3
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Pina.7 = Input
Porta.7 = 1
Start Adc
T = Getadc(7)
'#######Hauptprogram############
Do
If T < 1010 Then
Select Case T
Case 410 To 450 : K = 1 'Melyik gomb nyomva
Case 340 To 380 : K = 2
Case 265 To 305 : K = 3
Case 180 To 220 : K = 4
Case 100 To 130 : K = 5
End Select
End If
If K = 1 Then Gosub Gasauf
If K = 2 Then Gosub Gaszu
If K = 3 Then Gosub Chockauf
If K = 4 Then Gosub Choczu
Loop
End
'end program
'alprogramok a motorok hajtására és azok megszakitására
'asszerint, hogy a végálláskapcsolók hol állnak, ezek jelentés.
Gasauf:
Do
If G2 = 1 Then E1 = 1 : Mg1 = 0 : Mg2 = 1 'Ha végállás nem elért indulj
Loop Until K <> 1 or G2 = 0 'Addig mig gomb nyomva vagy végállás
If G2 = 0 Then Lg1 = 0 Else Lg1 = 1 'ha végállás, jelezd
E1 = 0 'kapcsold ki a hajtót
Gaszu:
Do
If G1 = 1 Then E1 = 1 : Mg1 = 1 : Mg2 = 0
Loop Until K <> 2 or G1 = 0
If G1 = 0 Then Lg2 = 0 Else Lg2 = 1
E1 = 0
Return
Chockauf:
Do
If C2 = 1 Then E2 = 1 : Mc1 = 1 : Mc2 = 0
Loop Until K <> 3 or C2 = 0
If C2 = 0 Then Lc1 = 0 Else Lc1 = 1
E2 = 0
Return
Choczu:
Do
If C1 = 1 Then E2 = 1 : Mc1 = 0 : Mc2 = 1
Loop Until K <> 4 or C1 = 0
If C1 = 0 Then Lc2 = 0 Else Lc2 = 1
E2 = 0
Return
Most ha elinditom akkor a négy led világit ami ha jól
gondolom akkor logikus mert induláskor mind Gnd n vannak?.
Furcsa az is hogy a Portc amin végig ledek vannk amiket egy egérzongorával le és félkapcsolhatók ezen a négyen kivűl még a C6 is ég. Az meg nem szerepel a progiban a 4,5,7 meg nem égnek azok se szerepelnek, ezeken 3,2V t mérek.
a progi semelyik gomra se reagáll. Átmérten őket és átszámoltam, hogy stimmelnek e a számok amiket az eredeti az erre a Bordra irt progik egyikéből másoltam ki.
Ezeket mértem
1,92
1,59
1,24
0,86
0,45
Esszerint nem stimmeltek mert ha jól számolok akkor
92
176
259
325
393 lennénenk (a Vcc majd pontossan5V)
ezért átirtam de igy is ugyanaz.
Case 360 To 550 : K = 1
Case 300 To 300 : K = 2
Case 140 To 360 : K = 3
Case 115 To 200 : K = 4
Case 50 To 115 : K = 5
Egy egyszerű villogtató progit is feltettem gondova, hogy valahog mégse lessz a chip átirva de az rögtön ment.
Hibajelentés sehol.
Itt az én sok tudományom ácsorog:-)
Ha szükségetek lenne a hiba megtalállására a Board rajzára akkor azt
hova tegyem?
PINx.y : mi a bemenet állapota? Csak bemenetre értelmezhető, kimenet estén a lab fizikai jelszintjét adja meg.
PORTx.y : kimenetnél: mi legyen a port H/L értéke
bemenet esetén: csak belső felhúzóellenállás.....
Ahány bascomos port és pin értelmezést olvasok anyi a vélemény.
Amit eddig kivetten Port akkor ha az egész vagyis mind a nyolc lessz deklarálva. Ha egyenként akkor bizony Pin de ha hozzáirod hogy output akkor az output lesz, ha meg inputot irsz akkor anak a felhúzásához viszont port lesz irva.
Igy itéld légyszi a tudásalapom.
Mi igaz?
Talán jobb lett volna ha ezt a pici progit átirtad volna helyesre, abból bizosra mehettem volna.
Jatag. Ez a proci ment igy mindig ezekkel a beállitásokkal. Én a fusebitek közelébe sem mentem azokon nem állitottam soha.