belső eeprom

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
szepnorbee
Bitmanipulátor
Hozzászólások: 122
Csatlakozott: 2009. augusztus 31. hétfő, 6:00

Hozzászólás Szerző: szepnorbee »

Uh ez kicsit bonyosan hangzik. Lehet a jövőben több tárolandó paraméterem is lesz (bit típusú) ez akkor is beválik? Egyenlőre még kínai. :) Más alternatíva nincs esetleg? (nem gond ha kicsit több flash-t fogyaszt) Köszi
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00
Tartózkodási hely: Törökbálint

Hozzászólás Szerző: herc1234 »

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..
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10113
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Bit típus nem tárolható EEPROM-ban. Tedd byte alapon és 0/1 értéket vegyen fel... (EEPROM minimum byte szervezésű!)
Avatar
szepnorbee
Bitmanipulátor
Hozzászólások: 122
Csatlakozott: 2009. augusztus 31. hétfő, 6:00

-

Hozzászólás Szerző: szepnorbee »

Ü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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10113
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

EEpromban tárolt adatot TILOS If-l használni (0 az eredmnye ekkor). TEMP változóba emeld át és úgy hasonlítsd össze 2 lépésben....
Avatar
szepnorbee
Bitmanipulátor
Hozzászólások: 122
Csatlakozott: 2009. augusztus 31. hétfő, 6:00

-

Hozzászólás Szerző: szepnorbee »

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
Válasz küldése