belső eeprom
- szepnorbee
- Bitmanipulátor
- Hozzászólások: 122
- Csatlakozott: 2009. augusztus 31. hétfő, 6:00
Vagy ot van még az INP ill. a PEEK indirect címzésre.
Nincs ebben semmi bonya.
dimenzionálsz egy változót a memóriában akárhova mondjuk:
DIM bit1 as Bit at $60
DIM Byte1 as Byte at $68'ez már ezután fog valahova dimenzionálódni
Ekkor a szimulátorban is megtekinheted hogy ha betöltesz valamit
a változóba az a $60 as címen megjelenik.
Utánna:
Byte1 = INP($60) 'ekkor természeten megkapod a bited+7 olyat ami
az után következik a ramban
az elöző pléda:
DIM bit1 as Bit at $60
DIM bit2 as Bit at $61
DIM byte1 as Byte at $60 OVERLAY
Ekkor a bit1 $60 címre kerül a bit2 $61-re és a byte1 pedig a $60!
tehát átfedi a bit1 bit2 területét.
pl.
bit1 = 1
bit2 = 1
akkor :
byte1 = 11000000
Amikor az ember átveszi a memóriacímzést a bascomtól onnantól
nagyon oda kell figyelni mit hova tesz az ember mert könnyen belekavarodik.(akár egy új változó feltünésekor aminek nem adsz közvetlen memóriacímet)
De lehet igy is:
byte1 = bit1 & bit2
bár ez + memóriaterületet igényel
ha jól emlékszem (mostanság nem nagyon bascomozom)
most parallax propeller a pálya..
Nincs ebben semmi bonya.
dimenzionálsz egy változót a memóriában akárhova mondjuk:
DIM bit1 as Bit at $60
DIM Byte1 as Byte at $68'ez már ezután fog valahova dimenzionálódni
Ekkor a szimulátorban is megtekinheted hogy ha betöltesz valamit
a változóba az a $60 as címen megjelenik.
Utánna:
Byte1 = INP($60) 'ekkor természeten megkapod a bited+7 olyat ami
az után következik a ramban
az elöző pléda:
DIM bit1 as Bit at $60
DIM bit2 as Bit at $61
DIM byte1 as Byte at $60 OVERLAY
Ekkor a bit1 $60 címre kerül a bit2 $61-re és a byte1 pedig a $60!
tehát átfedi a bit1 bit2 területét.
pl.
bit1 = 1
bit2 = 1
akkor :
byte1 = 11000000
Amikor az ember átveszi a memóriacímzést a bascomtól onnantól
nagyon oda kell figyelni mit hova tesz az ember mert könnyen belekavarodik.(akár egy új változó feltünésekor aminek nem adsz közvetlen memóriacímet)
De lehet igy is:
byte1 = bit1 & bit2
bár ez + memóriaterületet igényel
ha jól emlékszem (mostanság nem nagyon bascomozom)
most parallax propeller a pálya..
- szepnorbee
- Bitmanipulátor
- Hozzászólások: 122
- Csatlakozott: 2009. augusztus 31. hétfő, 6:00
-
Üdv! Megpróbáltam byte alapon tárolni az eeprom-ban a kér paraméteremet, de valamiért nem működik. A program lefordul hiba nélkül, de a táp levétele után nem veszik fel a változóim a helyes értékeket. Mé lehet a baj? A tárolásért felelős programrész:
Kód: Egész kijelölése
$regfile "m8def.dat"
$crystal = 4000000
'
'
'
'
'
Dim Light As Bit 'Autómata fényszóró bekapcsolás
Dim Menu As Bit 'nem eldöntött menü
Dim Eelight As Eram Byte
Dim Eemenu As Eram Byte
If Eelight = 1 Then
Light = 1
Elseif Eelight = 0 Then
Light = 0
End If
If Eemenu = 1 Then
Menu = 1
Elseif Eemenu = 0 Then
Menu = 0
End If
'
'
'
'
Main:
J = 0
I = 0
Do
If Pind.6 = 0 Then Incr I
Bitwait Pind.6 , Set
If Pind.7 = 0 And I = 2 Then Goto Options
Bitwait Pind.7 , Set
If I > 2 Then I = 0
Select Case I
Case 0 : Gosub Battery
Case 1 : Gosub Frekvenz
Case 2 : Gosub Spdimp
End Select
Loop
Options:
Do
If Pind.6 = 0 Then Incr J
Bitwait Pind.6 , Set
If J > 2 Then
J = 0
End If
If Pind.7 = 0 And J = 0 Then Toggle Light
If Pind.7 = 0 And J = 1 Then Toggle Menu
If Pind.7 = 0 And J = 2 Then Goto Memory
Bitwait Pind.7 , Set
Select Case J
Case 0 : Text = "light " + Str(light)
Case 1 : Text = "menu " + Str(menu)
Case 2 : Text = " exit"
End Select
Gosub Sendnap
Waitms 300
Loop
'
'
'
'
'
Memory:
If Light = 1 Then
Eelight = 1
Elseif Light = 0 Then
Eelight = 0
End If
If Menu = 1 Then
Eemenu = 1
Elseif Menu = 0 Then
Eemenu = 0
End If
Text = " SAVED"
Gosub Sendnap
Wait 1
Goto Main- szepnorbee
- Bitmanipulátor
- Hozzászólások: 122
- Csatlakozott: 2009. augusztus 31. hétfő, 6:00
-
Köszi! Valóban if .... then tájon volt a hiba, így hiába töltötte be az eeprom-ból a változót, lejebb felülírta. Most tökéletes, pedig a tárolás most is if-then alapú temp nélkül. Bascom 1.11.9.8