Forum www.nestor-electronic.pl Strona Główna www.nestor-electronic.pl
Forum sterowników procesorowych- programy BASCOM
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

CLR

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pią Mar 14, 2008 12:39 pm    Temat postu: CLR Odpowiedz z cytatem

witam
a ja mam nastepujacy problem:
przy pisaniu programu i wyswietlaniu jakis komunikatów na wyswietlaczu po zmianie wartosci lub slowa pozostaja mi litery z poprzedniego cyklu np. ze by bylo jasniej
wyswietlam na wyswietlaczu słowo : NESTOR
przy kolejnej komendzie chce wyswietlic np. lidzbe 30
to na wyswietlaczu pojawia mi sie: 30STOR
ja wiem ze to jest cos zwiazanego z wyswietlaczem znowu jak na poczatku programu lub na koniec wpisuje CLR to np napis NESTOR zacznie mi mrugac i nic nie widac.Jaka jest na to rada?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pią Mar 14, 2008 12:52 pm    Temat postu: Odpowiedz z cytatem

Jeżeli chcesz wyczyścić ekran to stosujesz komendę "CLS" i przy okazji kursor ustawia się na 1 znaku 1 linii.
Są jeszcze komedy:
- home - ustawia kursor na 1 znaku 1 lini bez czyszczenia ekranu
- upperline - ustawia kursor na 1 znaku 1 linii wyświetlacz
- lowerline - ustawia kursor na 1 znaku 2 linii
- ...
- locate x,y; ustawia kursor na znaku x w linii y

Tak po krótce to byłoby na tyle.
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pią Mar 14, 2008 5:14 pm    Temat postu: Odpowiedz z cytatem

sorrki moj bląd oczywiscie ze stosuje CLS i wlasnie po tej komendzie wyswitlacz mi zaczyna glupiec
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pią Mar 14, 2008 5:19 pm    Temat postu: Odpowiedz z cytatem

Załącz twój program to zobaczymy w czym tkwi problem.
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pią Mar 14, 2008 5:27 pm    Temat postu: Odpowiedz z cytatem

na poczatek musze wytlumaczyc co chce zrobic
chce zbudowac menu z ktorego bede mogl zmieniac parametry nastawów





'----------------------------USTAWIENIA-----------------------------------------
$regfile = "m16def.dat"


$crystal = 1600000

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2





Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input

Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim E As Integer
Dim F As Integer
Dim G As Integer
Dim Licz As Integer
Dim Wynik As String * 10
Dim Pamiec As Integer


S1 Alias Pinb.0
S2 Alias Pinb.1
S3 Alias Pinb.2
S4 Alias Pinb.3

Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3


'-------->>>>>>>>> SART PROGRAMU <<<<<<<<<<<----------

Do

Cls

Locate 1 , 1
Lcd "Start Programu" ' start programu
Readeeprom Wynik , 5 ' czytaj pamiec
Readeeprom A , 6
Readeeprom B , 7
Readeeprom C , 8
Readeeprom D , 9
Readeeprom E , 13
Readeeprom F , 11
Readeeprom G , 12

Waitms 100

Cls


'---------------------------------MENU------------------------------------------
Menu:

Do



Locate 1 , 1 ' wyswietl wynik
Lcd "Wynik- " ; Wynik ' czytaj pamiec
Readeeprom Wynik , 5 ' wyswietl wynik z


Wynik = Str(licz) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1

Licz = Licz + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
Licz = Licz - 1

End If
End If

If Licz = 1 Then

Locate 3 , 1
Lcd "MENU GLOWNE "

End If

If Licz = 2 Then
Locate 3 , 1
Lcd "TEMP ZAL. POMPY "
If S3 = 0 Then
Gosub Tempzalpompy
End If

End If

If Licz = 3 Then
Locate 3 , 1
Lcd "TEMP WYL. POMPY "
If S3 = 0 Then
Gosub Tempwylpompy
End If

End If

If Licz = 4 Then
Locate 3 , 1
Lcd "TEMP ZAL. BIJLERA "
If S3 = 0 Then
Gosub Tempzalbojlera
End If

End If

If Licz = 5 Then
Locate 3 , 1
Lcd "TEMP WYL. BOJLERA "
If S3 = 0 Then
Gosub Tempwylbojlera
End If
End If

If Licz = 6 Then
Locate 3 , 1
Lcd "TEMP ZAL. DMUCHAWY"
If S3 = 0 Then
Gosub Tempzaldmuchawy
End If

End If

If Licz = 7 Then
Locate 3 , 1
Lcd "TEMP WYL. DMUCHAWY"
If S3 = 0 Then
Gosub Tempwyldmuchawy
End If

End If

If Licz = 8 Then
Locate 3 , 1
Lcd "PRZEDMUCH PIECA "
If S3 = 0 Then
Gosub Przedmuchpieca
End If

End If

If Licz = 9 Then
Locate 3 , 1
Lcd "EXIT "

End If





If Licz = 10 Then
Cls
Licz = 1

End If


If Licz = 0 Then
Cls
Licz = 1

End If






Loop
Loop

End


Cls

'------------------------TEMPERATURA ZAŁANCZANIA POMPY-----------------------------------


Tempzalpompy:

Do



Locate 1 , 1
Lcd " TEMP ZAL. POMPY "
Locate 3 , 1
Lcd Wynik

Wynik = Str(a) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
A = A + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
A = A - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom A , 6
If S3 = 0 Then
Cls
Return
End If
End If
End If




If A = 100 Then
Cls
A = 0

End If


If A = -1 Then
Cls
A = 99

End If







Loop

End




'------------------------TEMPERATURA WYŁANCZANIA POMPU--------------------------
Tempwylpompy:

Do



Locate 1 , 1
Lcd " TEMP WYL. POMPY "
Locate 3 , 1
Lcd Wynik

Wynik = Str(b) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
B = B + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
B = B - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom B , 7
If S3 = 0 Then
Cls
Return
End If
End If
End If



If B = 100 Then
Cls
B = 0

End If


If B = -1 Then
Cls
B = 99

End If








Loop

End




'--------------------TEMPERATURA ZAŁANCZANIA BOJLERA----------------------------
Tempzalbojlera:

Do



Locate 1 , 1
Lcd " TEMP ZAL. BOJLERA "
Locate 3 , 1
Lcd Wynik

Wynik = Str(c) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
C = C + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
C = C - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom C , 8
If S3 = 0 Then
Cls
Return
End If
End If
End If




If C = 100 Then
Cls
C = 0

End If


If C = -1 Then
Cls
C = 99

End If








Loop

End




'---------------------TEMPERATURA WYŁANCZANIA BOJLERA---------------------------
Tempwylbojlera:

Do



Locate 1 , 1
Lcd " TEMP WYL. POMPY "
Locate 3 , 1
Lcd Wynik

Wynik = Str(d) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
D = D + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
D = D - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom D , 9
If S3 = 0 Then
Cls
Return
End If
End If
End If




If D = 100 Then
Cls
D = 0

End If


If D = -1 Then
Cls
D = 99

End If


Waitms 100
Cls





Loop

End




'------------------TEMPERATURA ZAŁANCZANIA DMUCHAWY-----------------------------
Tempzaldmuchawy:

Do




Locate 1 , 1
Lcd " TEMP ZAL. DMUCHAWY "
Locate 3 , 1
Lcd Wynik

Wynik = Str(e) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
E = E + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
E = E - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom E , 13
If S3 = 0 Then
Cls
Return
End If
End If
End If




If E = 100 Then
Cls
E = 0

End If


If E = -1 Then
Cls
E = 99

End If








Loop

End




'--------------------TEMPERATURA WYŁANCZANIA DMUCHAWY---------------------------
Tempwyldmuchawy:

Do



Locate 1 , 1
Lcd " TEMP WYL. DMUCHAWY "
Locate 3 , 1
Lcd Wynik

Wynik = Str(f) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
F = F + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
F = F - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom F , 11
If S3 = 0 Then
Cls
Return
End If
End If
End If




If F = 100 Then
Cls
F = 0

End If


If F = -1 Then
Cls
F = 99

End If








Loop

End




'-----------------------PRZEDMUCH PIECA-----------------------------------------
Przedmuchpieca:

Do



Locate 1 , 1
Lcd " PRZEDMUCH PIECA "
Locate 3 , 1
Lcd Wynik

Wynik = Str(g) 'definiowanaie formatu
Wynik = Format(wynik , "00") 'wyswietlania wyniku



If S1 = 0 Then
Waitms 40
If S1 = 0 Then 'jesli s1=0 to zwiekrz o 1
G = G + 1

End If
End If


If S2 = 0 Then 'jesli s2=0 to zmniejsz o 1
Waitms 40
If S2 = 0 Then
G = G - 1

End If
End If

If S3 = 0 Then
Waitms 40
If S3 = 0 Then
Writeeeprom G , 12
If S3 = 0 Then
Cls
Return
End If
End If
End If




If G = 100 Then
Cls
G = 0

End If


If G = -1 Then
Cls
G = 99

End If







Loop

End
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pią Mar 14, 2008 6:25 pm    Temat postu: Odpowiedz z cytatem

No i w tym przypadku jaki uzyskujesz efekt, co dokładnie nie działa i w jakiej sytuacji. Rozumiem również że testujesz to na innej płytce (nie tej od Rafała) - używasz procesora Atmega16 i wyświetlacz LCD wyprowadzony masz na innych portach (kolejność pinów).
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pią Mar 14, 2008 7:33 pm    Temat postu: Odpowiedz z cytatem

na plytce od ralfa mam zbudowany sterownik do pieca CO ,program tez troche tam przerobilem ale dziala. Teraz chce dodac menu do tego programu i kabinuje narazie samo dzialanie MENU.
ale aktualnie testuje sobie programy na plytce ze zdjecia, posiadam atmega16 i wyswietlacz zdaje sie 4x20. I co do wyswietlacza Tak mam go podlonczony na innych portach bo tak bylo mi wygodniej tak ze jak ktos chce sobie to wgrac do siebie to musi zmienic sobie porty,$regfile i taktowanie.

tak mam zrobiony sterownik na bazie projektu Ralfa


a tak mam zrobiony uklad do testowania



no a dzieje sie to ze wchodzie sobie w MENU w "Załanczanie dmuchawy"
ustawiam jakas wartość przyciskam przycisk S3 i powinien wpisac ta wartosc do pamieci (tak jak pradu braknie ze by pamietał)i wyjsc spowrotem do menu głownego , wraca ale pozostawia pewne znaki z poprzedniego wyswietlania tak jak wspomnialem jesli np w pierwszej linijce byl wpierw wyswietlonu napis NESTOR a potem wracajac do menu w to samo miejsce wskakuje np 20 to na wyswietlaczu pojawia sie 20STOR
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Pią Mar 14, 2008 7:54 pm    Temat postu: Odpowiedz z cytatem

nie analizowałem Twojego kodu bo nie mam czasu, ale z tego co piszesz to zrób tak:
jak zrobisz
lcd "nestor "

to po napisnie nestor zrób kilka spacji i przykryja one smieci z poprzedniego ekranu i po sprawie Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pią Mar 14, 2008 8:11 pm    Temat postu: Odpowiedz z cytatem

wiem wiem tez tak zrobilem w tym programie Very Happy to zawsze jakies rozwiazanie ale jesli robie cos takiego:
Wynik = Str(licz)
Wynik = Format(wynik , "00")
to nie wiem jak???

bo wynik bedzie wyswietlany we formie 2cyfrowej 01,03,23,99 itd.

no ale teraz jest taka sytulacja

wczesniej w na wyswietlaczu byl wyswietlony napis NESTOR (locate 1 , 1)
i potem w tym samym miejscu chce wyswietlic wynik to pojawi mi sie jak wczesnie wsponialem 01ESTOR , rozumiem ze wstawiajac spacje moge tego sie pozbyc ale w innym przypadku
np: byl wyswietlony napis jakis
LCD "NESTOR"
a potem
LCD "COS "
to dziala i bedzie dobrze wyswietlac
ale jesli o zdeklarowanie jakies wartosi jak w tym przypadku to co zrobic bo jesli mam moj przypadek:

Wynik = Str(licz)
Wynik = Format(wynik , "00")

to wstawiajac spacje do "00 "
za zamiast mi wyswietlic na wyswietlaczu >00******< (* <-- spacja)
to robi mi tak
>******00< (*<-- ten znaczek oznacza spacje)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pią Mar 14, 2008 9:00 pm    Temat postu: Odpowiedz z cytatem

Spróbuj wstawić trochę przerobiony przeze mnie poniższy kod (jak będzie działac dobrze to w analogiczny spsób przerób pozostałe podmenu).

Kod:

'------------------TEMPERATURA ZAŁANCZANIA DMUCHAWY-----------------------------
Tempzaldmuchawy:
Cls
Lcd " TEMP ZAL. DMUCHAWY "
Do
  Thirdline
  Select Case E
    Case 100 : E = 0
    Case -1 : E = 99
  End Select
  Wynik = Str(e)                                                                'definiowanaie formatu
  Wynik = Format(wynik , "00")                                                  'wyswietlania wyniku
  Lcd Wynik
  If S1 = 0 Then Incr E
  If S2 = 0 Then Decr E
  Waitms 200
Loop Until S3 = 0
Waitms 200
Writeeeprom E , 13
Cls
Return

_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Pią Mar 14, 2008 9:00 pm    Temat postu: Odpowiedz z cytatem

no to najlepiej stosuj cls i po problemie

a jak nie to wyswietl:

locate1,1
lcd wynik;" "


w cudzysłowie spacje przysłaniające reszte Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pią Mar 14, 2008 10:29 pm    Temat postu: Odpowiedz z cytatem

endurasek, wracając do Twojego programu menu także bym poprawił np. tak - chyba bardziej przejrzyście (chociaż osobiście całkiem inaczej bym się do tego zabrał):

Kod:

'---------------------------------MENU------------------------------------------
Menu:
Licz = 1
Do
  Home
  Wynik = Str(licz) 'definiowanaie formatu
  Wynik = Format(wynik , "00") 'wyswietlania wyniku
  Lcd "Wynik- " ; Wynik ' czytaj pamiec z

  If S1 = 0 Then Incr Licz
  If S2 = 0 Then Decr Licz
  Thirdline
  Select case Licz
    Case 0 : Licz = 9
    Case 1 : Lcd "MENU GLOWNE       "
    Case 2
      Lcd "TEMP ZAL. POMPY   "
      If S3 = 0 Then Gosub Tempzalpompy
    Case 3
      Lcd "TEMP WYL. POMPY   "
      If S3 = 0 Then Gosub Tempwylpompy
    Case 4
      Lcd "TEMP ZAL. BIJLERA "
      If S3 = 0 Then Gosub Tempzalbojlera
    Case 5
      Lcd "TEMP WYL. BOJLERA "
      If S3 = 0 Then Gosub Tempwylbojlera
    Case 6
      Lcd "TEMP ZAL. DMUCHAWY"
      If S3 = 0 Then Gosub Tempzaldmuchawy
    Case 7
      Lcd "TEMP WYL. DMUCHAWY"
      If S3 = 0 Then Gosub Tempwyldmuchawy
    case 8
      Lcd "PRZEDMUCH PIECA   "
      If S3 = 0 Then Gosub Przedmuchpieca
    Case 9 : Lcd "EXIT              "
    Case 10 : Licz = 1
  End select
  Waitms 200
Loop

_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
LoLu
Zawsze na posterunku


Dołączył: 13 Lis 2007
Posty: 161
Skąd: Poznań (okolice) Nowy Tomyśl

PostWysłany: Pią Mar 14, 2008 11:29 pm    Temat postu: Odpowiedz z cytatem

Zrób sobie procedurę z parametrem

declare sub czysc(a as byte)
.........

sub czysc (a as byte)

Locate a,1
lcd " " 'tyle spacji ile wyświetlacz ma znaków w wierszu
loacte a,1
end sub


A potem wywołujesz to poleceniem np czysc 2, przed wypisaniem danych na lcd

wynik bedzie taki że wyczyści ci cała linijke 2(parametr), proste skuteczne i szybkie
_________________
Od kiedy powstało GOOGLE pytania nie maja sensu ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pią Mar 14, 2008 11:47 pm    Temat postu: Odpowiedz z cytatem

Lolu, żeby procedurka działała w takiej postaci jak napisałeś parametr "a" musi być przekazywany przez warość. Czyli deklaracja procedury powinna wyglądać tak:

Kod:

Declare sub (byval a as byte)
...
Sub Czysc(byval a as byte)
  Locate a , 1
  Lcd Spc (x) 'gdzie x to liczba spacji (dzięki funkcji SPC możemy zaoszczędzić trochę bajtów)
  Locate a , 1
End Sub


_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Sob Mar 15, 2008 8:34 pm    Temat postu: Odpowiedz z cytatem

pIKUŚ WILKIE DZIEKI WGRALEM PROGRAM DO PROCKA TROCHE GO JESZCZE PRZEROBILEM ALE DZIALA!!!!! JEDYNIE JESZCZE MUSZE ZDEKLAROWAC WAROSCI STALYCH WPISANYCH DO PAMIECI BO PO WGRANIU PROGRAMUD DO PROCKA WSZYSTKIE WARTOSCI SA USTAWIONE NA 99 A JAK WYL I ZAL ZASILANIE TO SIE ROBIA JAKIES KLOCKI BO WYSKAKUJA WAROSCI W PELNEJ GAMIE LIDZBOWEJ.....
MUSIAL BYM ZDEKLAROWAC ZE JEZELI WAROSC W PAMIECI JEST WIEKRZA OD 99 LUB MNIEJSZA OD 0 TO NP DLA TEMP ZAL POMY WYNOSI 35STOPNI . A NIECH MI JESZCZE KTOS POWIE WPISUJAC DO PAMIECI WARTOSCI TO ILE MAM DOSTEPNYCH MIEJSC? NP. WRIEEEPROM A , 6 ... DO ILU MOGE TAK LECIEC? JAK TO DZIALA BO UZYWAM TEGO POLECENIA A DO KONCA NIE WIEM JAK ONO DZIALA.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Sob Mar 15, 2008 9:11 pm    Temat postu: Odpowiedz z cytatem

odstępy z tego co sie orientuje są zalezne od typu zmiennej jaki iżywasz Smile

W helpie bascoma jest rozpiska ile która zmienna zajmuje pamięci i tyle bitów busisz robić odstępu

A popjemnośc jest zależna od rodzaju zmiennych z jakich kożystasz.

Tak więc na przykła kożystając ze zmiennych typu BYTE możesz zapiosywac eeprobm co jeden bez problemu, ale jak innego rodzju zmienna to już tak nie możesz bo ci smieci będzie odczytywał Smile

No i jeszcze pamie taj o podstawianiu dodatkowej nazwy zmiennej jako zmienna zapisywana do eeprom, bo iestety na zmiennych odczytanych z pamięci ni mozna wykonywac operacji matematycznych Sad

udaje sie czasem je stylko porównymwać z innymi zmiennymi, ale czasem jest z tym tez problem, wic lepiej odrazu skożystać z dodatkowej zmiennej
na przykład jak masz:
t_pokoju
to sobie zrób zapisywaną do eeprom:
t_pokoju_eep
ja tak rozie wtedy mi sie nie mylą Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Sob Mar 15, 2008 11:10 pm    Temat postu: Odpowiedz z cytatem

Poniżej tableka przedstawiająca jaka zmienna ile zajmuje bajtów:

Typ - Rozmiar
byte - 1 bajt
integer - 2 bajty
long - 4 bajty
word - 2 bajty
single - 4 bajty
string - max.254 bajty (przy czym zmienna zajmuje 1 bajt więcej niż jest znaków - znak końca "0").

Co do pojemności pamięci EEPROM to zarówno dla procesorów Atmega8 i Atmega16 do wykorzystania masz 512 bajtów. I jeszcze jedna uwaga staraj się nie zapisywać do pamięci pod adresem 0 (writeeeprom x,0) bo możesz zdziwić się że po resecie wartość tam zapisana wyzeruje się.

Dodatkowo możesz od razu definiować zmienne zapisywane w pamięci eeprom np. "Dim zm1 as ERAM byte".
Reszta tak jak Rafał wyżej napisał.
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Nie Mar 16, 2008 7:12 am    Temat postu: Odpowiedz z cytatem

uuuu ale teraz mam naciśniete do głowy nowości musze to przetrawić ale wielkie dzieki za pomoc. Mowiliście tez ze troche zle sie zabieram do tego MENU ,wsumie to kiedys wpadlem na ten pomysl ze by to zrobic wlasnie tak na piechote bo jest bardzo prosto. No ale oczywiscie sa inne metody moze ktos ma jakies ciekawsze? ja sie nie upieram przy swojej a chce poznac cos innego!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Nie Mar 16, 2008 3:01 pm    Temat postu: Odpowiedz z cytatem

widzia łem gotowe skrypty gdziec na siewcie z mewnu napisanym w bascom
Z tego co pamiętam to chyba sa one u mnie na płycie którą dokładam w komplecie, ale musział byś sobie poszukac na CD

I menu dość ładnie było zrobione
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Nie Mar 16, 2008 5:43 pm    Temat postu: Odpowiedz z cytatem

poszukam u ciebie na plytce ale ja kupowalem ten zestaw startowy chyba juz ze 2 lata temu a na bank od tego czasu duzo doszlo nowych ciekawych rzeczy ale poszukam
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


Powered by phpBB © 2001, 2005 phpBB Group