Alias név
-
pkedvessy
Alias név
Hali
Az lenne a kérdésem, hogy az egyes io portoknak lehet-e valamilyen alias nevet adni, hogy később amennyiben módosítanom kell a kódot, csak itt kelljen módosítani, és ne az egész kódban!
Gondolok itt arra, hogy mondjuk a Portb.1 -et elnevezem Ki1-nek, és aztán így használom:
set Ki1
reset Ki1
...
Köszi
Az lenne a kérdésem, hogy az egyes io portoknak lehet-e valamilyen alias nevet adni, hogy később amennyiben módosítanom kell a kódot, csak itt kelljen módosítani, és ne az egész kódban!
Gondolok itt arra, hogy mondjuk a Portb.1 -et elnevezem Ki1-nek, és aztán így használom:
set Ki1
reset Ki1
...
Köszi
Hello
Lehet hülye kérdés.
Nem lehet a kimeneteket közvetlen tömbbe rendezni?
Valahogy így gondoltam:
P(1) alias portb.1
p(2) alias portb.2
p(3) alias portb.3
De ez nem működik.
Esetleg valami más megoldás?
Vagy csak külön lehet? Ha sub-ba mindegyikhez hozzárendelek egy másik változót ami már tömbbe van és mindig meg kell hívni?
Köszi
Lehet hülye kérdés.
Nem lehet a kimeneteket közvetlen tömbbe rendezni?
Valahogy így gondoltam:
P(1) alias portb.1
p(2) alias portb.2
p(3) alias portb.3
De ez nem működik.
Esetleg valami más megoldás?
Vagy csak külön lehet? Ha sub-ba mindegyikhez hozzárendelek egy másik változót ami már tömbbe van és mindig meg kell hívni?
Köszi
Minek? Hiszen az már tömbben van!
Például egy futó fény:
Például egy futó fény:
Kód: Egész kijelölése
'Porttest.bas
$regfile = "m16def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 40 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
$sim
Config Portb = Output
Portom Alias Portb
Dim Ib As Byte
Do
For Ib = 0 To 7
Set Portom.ib
Waitms 400
Reset Portom.ib
Next Ib
LoopMost is okosabb lettem.
Ez is jó megoldásnak tűnik csak nálam eléggé összevissza vannak a ledeknek a kimenetei. mert így vannak sorba.
Valahol 0-tól fölfelé valahol 7-től vannak lefelé a portok. Van pedig hogy kimaradnak lábak.
és jól enne ha mondjuk egy for ciklusban le lehetne rendezni pl egy futófényt.
De ha nincs jobb megoldás ez még mindig sokkal jobb mint amit én akartam csinálni.
Köszi
Ez is jó megoldásnak tűnik csak nálam eléggé összevissza vannak a ledeknek a kimenetei. mert így vannak sorba.
Valahol 0-tól fölfelé valahol 7-től vannak lefelé a portok. Van pedig hogy kimaradnak lábak.
és jól enne ha mondjuk egy for ciklusban le lehetne rendezni pl egy futófényt.
Kód: Egész kijelölése
Led1 Alias Porte.0
Led2 Alias Porte.1
Led3 Alias Porte.2
Led4 Alias Porte.3
Led5 Alias Porte.4
Led6 Alias Porte.5
Led7 Alias Porte.6
Led8 Alias Porte.7
Led9 Alias Portb.0
Led10 Alias Portb.1
Led11 Alias Portb.2
Led12 Alias Portb.3
Led13 Alias Portb.4
Led14 Alias Portb.5
Led15 Alias Portb.6
Led16 Alias Portb.7
Led17 Alias Portd.1
Led18 Alias Portd.2
Led19 Alias Portd.3
Led20 Alias Portd.4
Led21 Alias Portd.5
Led22 Alias Portd.6
Led23 Alias Portd.7
Led24 Alias Portc.0
Led25 Alias Portc.1
Led26 Alias Portc.2
Led27 Alias Portc.3
Led28 Alias Portc.4
Led29 Alias Portc.5
Led30 Alias Portc.6
Led31 Alias Portc.7
Led32 Alias Porta.7
Led33 Alias Porta.6
Led34 Alias Porta.5
Led35 Alias Porta.4
Led36 Alias Porta.3
Led37 Alias Porta.2
Led38 Alias Porta.1
Led39 Alias Porta.0
Led40 Alias Portf.7
Led41 Alias Portf.6
Led42 Alias Portf.5
Led43 Alias Portf.4
Led44 Alias Portf.3
Led45 Alias Portf.2
Led46 Alias Portf.1
Led47 Alias Portf.0Köszi
Küldd el egy szubrutinba, ahol szépen kiválogatod, hogy melyik melyik. Ha biztosra mész, még a memóriában az egymás utániakat fixen ki is oszthatod a DIM overlay illetve az At paranccsal...
A hozzászólást 1 alkalommal szerkesztették, utoljára Robert 2010. január 7. csütörtök, 17:17-kor.
Futófény 47 LEDre.
Én így oldottam meg. Tömbök és ciklusokkal:
Lépés sorrend:
Portok: E:0-7, B:0-7, D:1-7, C:0-7, A:7-0, F:7-0
Port címek memóriába ágyazva:
PortA : H3B
PortB: H38
PortC: H35
PortD: H32
PortE: H23
PortF: H62
De kíváncsi lennék a „DIM overlay illetve az At paranccsal” megoldásra is!?

Én így oldottam meg. Tömbök és ciklusokkal:
Lépés sorrend:
Portok: E:0-7, B:0-7, D:1-7, C:0-7, A:7-0, F:7-0
Port címek memóriába ágyazva:
PortA : H3B
PortB: H38
PortC: H35
PortD: H32
PortE: H23
PortF: H62
Kód: Egész kijelölése
$regfile = "m128def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 40 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
$sim
Dim Ib As Byte , Jb As Byte , Port As Byte
Dim Portcim(6) As Byte , Startib(6) As Byte , Stopib(6) As Byte , Stepib(6) As Integer , Adat(8) As Byte
'Port címek:
Portcim(1) = &H23 'PORTE
Portcim(2) = &H38 'PORTB
Portcim(3) = &H32 'PORTD
Portcim(4) = &H35 'PORTC
Portcim(5) = &H3B 'PORTA
Portcim(6) = &H62 'PORTF
'Start Index:
Startib(1) = 1
Startib(2) = 1
Startib(3) = 2
Startib(4) = 1
Startib(5) = 8
Startib(6) = 8
'Stop Index:
Stopib(1) = 9
Stopib(2) = 9
Stopib(3) = 9
Stopib(4) = 9
Stopib(5) = 0
Stopib(6) = 0
'Step Lépés irány:
Stepib(1) = 1
Stepib(2) = 1
Stepib(3) = 1
Stepib(4) = 1
Stepib(5) = -1
Stepib(6) = -1
'PORT Adat:
Adat(1) = 1
Adat(2) = 2
Adat(3) = 4
Adat(4) = 8
Adat(5) = 16
Adat(6) = 32
Adat(7) = 64
Adat(8) = 128
Do
For Jb = 1 To 6
' Print Startib(jb) ; " " ; Stopib(jb) ; " " ; Stepib(jb)
Ib = Startib(jb)
Do
Out Portcim(jb) , Adat(ib)
Waitms 400
Ib = Ib + Stepib(jb)
Loop Until Ib = Stopib(jb)
Out Portcim(jb) , 0
Next Jb
Loop
End 'end program
Vagy ugyan az Set Bits-el, Adattömb nélkül: 
Kód: Egész kijelölése
'Porttest2.bas
'Lépés sorrend:
'Portok: E:0->7, B:0->7, D:1->7, C:0->7, A:7->0, F:7->0
'$regfile = "m128def.dat"
$regfile = "m64def.dat"
$crystal = 14745600
'$crystal = 11059200
'$crystal = 8000000
'$baud = 19200
$hwstack = 32
$swstack = 40
$framesize = 40
$sim
'Index változok
Dim Ib As Byte , Jb As Byte , Byt As Byte
'Ciklus vezérlö tömbök
Dim Portcim(6) As Byte , Startib(6) As Byte , Stopib(6) As Byte , Stepib(6) As Integer
'Használt kimenetek beállítása:
Config Porte = Output
Config Portb = Output
Config Portd = &B11111110 'PORTD.0 bitet nem használja
Config Portc = Output
Config Porta = Output
Config Portf = Output
'Használt Port címek kapcsolás sorrendjében:
Portcim(1) = &H23 'PORTE Addr
Portcim(2) = &H38 'PORTB Addr
Portcim(3) = &H32 'PORTD Addr
Portcim(4) = &H35 'PORTC Addr
Portcim(5) = &H3B 'PORTA Addr
Portcim(6) = &H62 'PORTF Addr
'6db. Porthoz ciklus értékek:
'Start Index:
Startib(1) = 0
Startib(2) = 0
Startib(3) = 1
Startib(4) = 0
Startib(5) = 7
Startib(6) = 7
'Stop Index:
Stopib(1) = 8
Stopib(2) = 8
Stopib(3) = 8
Stopib(4) = 8
Stopib(5) = 255
Stopib(6) = 255
'Step Lépés köz, irány:
Stepib(1) = 1
Stepib(2) = 1
Stepib(3) = 1
Stepib(4) = 1
Stepib(5) = -1
Stepib(6) = -1
'Futófény 47/1 LEDre.
Do
For Jb = 1 To 6 '6db Port léptetés
Ib = Startib(jb) 'Aktuális port kezdő Index érték
Do
Byt = 0
Set Byt.ib 'Ib címzi a Port.bites.
Out Portcim(jb) , Byt 'Set Adat Bit(ib)
Waitms 400
Ib = Ib + Stepib(jb) 'Indexléptetés
Loop Until Ib = Stopib(jb) 'Index vége
Out Portcim(jb) , 0 'Aktuális Port törlés
Next Jb
' Bűvészkedés a tömb indexekkel, és értékekkel!
' Knight Rider
Byt = 255
For Jb = 1 To 6 'Összes LED kigyújtása
Out Portcim(jb) , Byt
Next Jb
'Árnyák Futó Oda
For Jb = 1 To 6 '6db Port léptetés
Ib = Startib(jb) 'Aktuális port kezdő Index érték
Do
Byt = 255
Reset Byt.ib 'Ib címzi a Port.bites.
Out Portcim(jb) , Byt 'Set Adat Bit(ib)
Waitms 60
Ib = Ib + Stepib(jb) 'Indexléptetés
Loop Until Ib = Stopib(jb) 'Index vége
Out Portcim(jb) , 255 'Aktuális Port törlés
Next Jb
'Vissza futó árnyék
For Jb = 6 To 1 Step -1 '6db Port léptetés
Ib = Stopib(jb) - 1 'Hátulról kezdi, és korrigál -1-el. Aktuális port kezdő Index érték
Vbyt = Startib(jb)
If Vbyt = 7 Then 'Értékek korrigálása
Vbyt = Vbyt + 1
Else
Vbyt = Vbyt - 1
End If
Sbyt = Stepib(jb) * -1 'Step Negálása
Do
Byt = 255
Reset Byt.ib 'Ib címzi a Port.bites.
Out Portcim(jb) , Byt 'Set Adat Bit(ib)
Waitms 30
Ib = Ib + Sbyt 'Indexléptetés
Loop Until Ib = Vbyt 'Az elején van Index vége
Out Portcim(jb) , 255 'Aktuális Port törlés
Next Jb
'
Byt = 0
For Jb = 1 To 6 'Összes LED kioltása
Out Portcim(jb) , Byt
Next Jb
Loop
End 'end program
A hozzászólást 6 alkalommal szerkesztették, utoljára kapu48 2010. január 9. szombat, 10:45-kor.
- Theophrast
- SzínkódFestő
- Hozzászólások: 78
- Csatlakozott: 2011. július 17. vasárnap, 6:00
Sziasztok
Ismét egy kis segitségre lenne szükségem
az alias-t hogyan lehet használni bascomban?
adott néhány led és néhány nyomógomb amelyeknek az álapotát egy for next ciklussal szeretném lekérdezni
hogyan lehetne rájuk hivatkozni?
ha valahogyan tömbként kezelnénk ?
már kiprobáltam egysmást, a bascom szintaktikailag nem értelmezi én pedig lassan kezdek kifogyni az ötletekből...
Ha valaki segitene azt nagyon megköszönném
Ismét egy kis segitségre lenne szükségem
az alias-t hogyan lehet használni bascomban?
adott néhány led és néhány nyomógomb amelyeknek az álapotát egy for next ciklussal szeretném lekérdezni
hogyan lehetne rájuk hivatkozni?
Kód: Egész kijelölése
Led.1 Alias Portb.2
Led.2 Alias Portd.0
Led.3 Alias Portc.2
.
.
.
Led.8 Alias Portc.0
Gomb.1 Alias Pinc.3
Gomb.2 Alias Pind.2
.
.
.
.
.
Gomb.9 Alias Pinb.1
For K = 1 To 9
If Gomb.k = 0 Then
'csináljon valamit
End If
Next Kmár kiprobáltam egysmást, a bascom szintaktikailag nem értelmezi én pedig lassan kezdek kifogyni az ötletekből...
Ha valaki segitene azt nagyon megköszönném
- Theophrast
- SzínkódFestő
- Hozzászólások: 78
- Csatlakozott: 2011. július 17. vasárnap, 6:00