FAQ | Points | Add... | Recent posts | Search | Register | Log in


Bascom i zmienne Eram: error 42


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> Bascom i zmienne Eram: error 42
Author
Message
Soohy_tm
Poziom 14
Poziom 14


Joined: 28 Mar 2006
Posts: 188

Post#1 Post from the author of the topic 13 Jun 2006 00:11   

Bascom i zmienne Eram...


Witam.
Mój problem polega na tym, że jak utworze zmienną jakiego kolwiek typu zapisywaną do EEPROMu (Eram) to nie mogę nic dalej z nią robić:( a oto przykład:
Quote:

Dim cos as eram byte
...
Lcd Format(str(cos) , "000") - wywala błąd
...
if cos<10 then incr cos - tutaj również
...


Jest to error nr. 42 - Numeric parametr expected, oraz
error nr. 31 0 Invalid datatype.
Czy coś robię źle, czy tych zmiennych poprostu nie da się używać w ten sposób.

Dziękuję za pomoc i pozdrawiam - Soohy_tm
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 13 Jun 2006 00:11   





Back to top
   
arnoldziq
Poziom 23
Poziom 23


Joined: 14 Apr 2006
Posts: 2934
Location: High Wycombe

Post#2 13 Jun 2006 08:14helpful post - solution   

Re: Bascom i zmienne Eram...


Help BASCOM-a mówi :
    ERAM
    Most AVR chips have internal EEPROM on board.
    This EEPROM can be used to store and retrieve data.
    In BASCOM, this data space is called ERAM.

    An important difference is that an ERAM variable can be written for a maximum of 100.000 times. So only assign an ERAM variable when it is needed and not in a loop

Co oznacza że raczej nie można wykonywać operacji matematycznych na tych zmiennych.
W skrajnych przypadkach, jednym programem dodającym "zmienna +1" mógłbyś wyczerpać te 100.000 cykli zapisu :)
Pamięć ta służy do przechowywania danych, i to raczej statycznych, które nie powinny się zbyt często zmieniać.

Zmienną z ERAM , raczej trzeba przepisać do zwykłej zmiennej i wtedy wykorzystać.

W ten sposób działa bez problemu :
Code:
Dim Cos As Eram Byte
Dim Cos1 As Byte

Cos1 = Cos
Lcd Format(str(cos1) , "000")                               

If Cos < 10 Then
Cos1 = Cos + 1
Cos = Cos1
End If


P.S.:
Pewno pomyślałeś że ten wywód nie ma sensu :).
Ale tylko pozornie.
Zmienne (stałe) ERAM mają sens.
Jeżeli odpowiednio zadeklarujesz taką zmienną :
Code:
Dim Cos As Eram Byte At adres_w_pamieci

to :
1. Możesz wartość takiej zmiennej zaprogramować przy programowaniu układu ( duża oszczędność kodu ).
2. Zmienne takie przeżywają RESET !!! W niektórych układach jest to niezbędne.
Back to top
   
Google

Google Adsense


Post# 13 Jun 2006 08:14helpful post - solution   





Back to top
   
Soohy_tm
Poziom 14
Poziom 14


Joined: 28 Mar 2006
Posts: 188

Post#3 Post from the author of the topic 13 Jun 2006 10:06   

Re: Bascom i zmienne Eram...


Teraz już kumam:) dzięki bardzo za pomoc!
Pozdrawiam - Soohy_tm
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> Bascom i zmienne Eram: error 42
Page 1 of 1
Similar topics
Bascom, ATtiny12, Iram i zmienne Word (2)
Error 31 i error 93 bascom atmega8 lcd ds1820 (8)
BASCOM- początkujący. error:149:config error [portd] in file: noname, line 2. (8)
Bascom. Dzielenie i zmienne. (3)
VBA zmienne MID - ERROR:( (2)
error:7, error:350, error:127 line:0 Bascom avr (8)
bascom i zmienna w eram - co robie źle? (18)
Bascom jak połączyć 2 zmienne w 1 z przecinkiem ? (5)
[BASCOM] Zmienne w EEPROM typu Overlay (5)
Bascom, PCF8583 i godzina jako 4 zmienne (4)

Page generation time: 0.295 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed