Archiv verlassen und diese Seite im Standarddesign anzeigen : Alias in Bascom
Hi,
ich suche eine Möglichkeit in Bascom, bei der man erst wie beim Alias
einem Port einen namen gitb, zb.
Led1 = portb.1
Led2 = portb.2
man das ganze dann ungefähr so abfragen kann
Dim I as byte
Do
Led(I) = 1
waitms 100
Led(I) = 0
waitms 100
I = I + 1
Loop
Das funktionirt mit alias nicht.
Gibt es da andere Möglcihkeiten?
Was es gibt:
Dim I as byte
Do
for i = 0 to 7
portb.i = 1
waitms 100
portb.i = 0
waitms 100
next
Loop
Meinst du sowas ?
Hi,
ja das meine ich aber nicht ganz, denn ich habe fast alle Ports eines At16
27 je 3 Pins für eine Led R G B. Dann möchte ich die
R1 = Rot LED1
...usw. nennen
und später dann in ner for next schleife das Rot(1) austauchen.
Ich hoffe man kans verstehen.
Zwischentabelle ?
Eine Tabelle: index---> welches Port & Pin
0 ... portb . 1
1 ... portc . 3
2 ... portd . 7
.....etc. ...
PS: wie das technisch geht, reden wir, wenn es überhaupt was für dich ist
Hi,
ja das kann funktioniern, die hauptsache ist, dass die Ports andere Namen
bekommen, mitdenen man das machen kann wie ich mir das vorstelle.
Siehe oben
Ich hatte mal eine Tabelle, immer paarweise
PORT-ADDRESSE , PIN
da konnte ich mit (z.B) "lookup" über einen durchgängigen Index beliebige Port-Pins ansprechen
Die tabelle war damit auch im Flash und hat dadurch keinen SRAM verbraten,
z.B die Pins von PORTB hiessen da so:
Port_Tab:
DATA &H38 , 1
DATA &H38 , 2
DATA &H38 , 4
DATA &H38 , 8
DATA &H38 , 16
DATA &H38 , 32
DATA &H38 , 64
DATA &H38 , 128
Den Zugriff hab' ich allerdings dann gleich im Inline-Assembler gemacht, weil es einfacher war. Is keine Sache, könnt ich dir zeigen
TobiasBlome
25.01.2008, 20:17
warum soll das nicht gehen?
Config Pinb.0 = Output
Led Alias Portb.0
oder hab ich etwas missverstanden?
Noch ein Hinweis: Namen wie "R1" sollten nicht verwendet werden, da dadurch direkt Register angesprochen werden. (Den Fehler hatte ich auch mal). Lieber Rot1 etc.
Hi,
es ging darum, den Port und welches I/O gemeint ist, mit Variablen zu
bestimmen. Dann braucht man keine Riesen Do-Loops, sondern kann
das ganze in ner kleinen For-next abhandeln. Ich glaube man kann
das auch irgendwie mit Porta.COL = 1 machen, habe ich aber noch
noicht probiert.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.