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 

obsługa pamięci

 
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ść
beleco
Nowy


Dołączył: 21 Kwi 2009
Posty: 24

PostWysłany: Sob Maj 09, 2009 9:04 pm    Temat postu: obsługa pamięci Odpowiedz z cytatem

jestem początkującym "bascomowcem" uczę się programowania na płytce atemega8 i potrzebuje jakiś prosty program obsługujący pamięć. chciałbym zapisywac w pamięci jakaś wartość i ją wyświetlić na lcd. może ktoś mi coś podeśle. beleco@op.pl
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
szok-k
Nowy


Dołączył: 10 Kwi 2009
Posty: 6

PostWysłany: Sob Maj 09, 2009 9:25 pm    Temat postu: Odpowiedz z cytatem

Beleco, chyba zbyt mało napisałeś - czym chcesz programowac procka? Czego używasz do programowania - w sieci jest b dużo programików (PROSTY PRZYKŁĄD TO RAFAŁA) - I TO SA PEWNE PROGRAMY - DZIAŁAJĄCE!
Jak masz kłopoty pisz!
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 Maj 10, 2009 7:15 pm    Temat postu: Odpowiedz z cytatem

Przeciez na płytxcire CD jest kijlka programów obsługujących pamiec - na przykłąd sterownik pieca CO Smile - zapamiętuje ustawioną temperaturę
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
beleco
Nowy


Dołączył: 21 Kwi 2009
Posty: 24

PostWysłany: Nie Maj 10, 2009 8:25 pm    Temat postu: Odpowiedz z cytatem

Rafał - zgadzam się z Tobą, oczywiście na płycie są przykłady zastosowania pamięci, ale jak dla mnie czyli początkującego jest to zaskomplikowane. Chodzi mi o to, że np sterownik do pieca jest sam w sobie bardzo skomlikowany, a mi by zależało na malutkim programie który by pokazywał jak zapisać jakąś zmienną w pamięci, jak ją odczytać i wyświetlić.

Szok-k - Dokładnie chciałbym zbudować termometr, który by mierzył temperaturę za oknem, i zapamiętywał najwyższą i najniższą z danego dnia oraz godzinę o której to miało miejsce - cykl miałby być siedmiodniowy.
Posiadam zegar (od Rafała z podtrzymaniem bateryjnym) i chciałbym go wykorzystać w tym programie. Programy do obsługi zegara i termometru udało mi się razem połączyć i chodzi to dobrze. Jeślibym miał jakieś podpowiedzi dotyczące jak zapisywać i odczytywać wartości z pamięci to może udałoby mi się to razem poskładać.
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: Pon Maj 11, 2009 8:09 am    Temat postu: Odpowiedz z cytatem

No to od tego jest HELP w Bascom-ie wyestarczy wybrać interesujacą Cie funkcjei juz masz przykład jej użycia.

Kod:
zapis:
writeeeprom zmienna,10

odczyt:
readeeprom zmienna,10


Gdzie zmienna to zapamietywa na zmienna a "10" adres pod którym zapisujesz, oczywiście nie musz emówić iz adrssy nie mogę się nachodzić jak równiez należy zwrócic uwage na długość słowa jakie zapisujesz, bo wtedy ilośc zapisywanych komórek się zmienia, na przykład zapisując luiczby z zakresu BYTE, możesz zapisywać co 1 komórkę ale przy wiekszych zakresach proponuje zapisywać co kilka bajtów dla pewności na przykład co 10 i masz pewnośc ze wszytko zadziała.

Należy jeszcze zwrócić uwagę iż bascom nie zawsze chce wykonywać operacje matemetyczne na zmiennych odczytanych z eeprom, więc dobrze jest taka zmienną przeadresować do innej ne przykład:
zmienna_dooperacji=zmienna

i wtedy zmidena_dooperacji moizebyc dowolnie używana w programie, niestety nie wiem czym to jest spowodowane, ale maiałem już kilka razy podoibny problem, dlatego staram sie używac innych zmiennych do zapisywania a innych do operacji matematycznych.

Myśle iz to wyczerpuje temat Smile


Nic prostrzego Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
beleco
Nowy


Dołączył: 21 Kwi 2009
Posty: 24

PostWysłany: Czw Maj 14, 2009 9:33 pm    Temat postu: Odpowiedz z cytatem

Podłączyłem zgodnie ze zdjęciami czujnik temperatury dallas 18b20, wgrałem program do obsługi tego czujnika i wszystko jest ok. Następnie wkleiłem program do obsługi zegara (tego co ma baterię podtrzymującą). Program mierzy i wyświetla aktualną temperaturę, najwyższą i najniższą oraz wyświetla aktualny czas. Wszystko chodzi dobrze ale po kilku godzinach coś się psuje bo wartość najwyższej temperatury osiąga jakieś gigantyczne wartości typu (300stC - w domu) a układ wraca do normalnej pracy dalej mierzy i wyświetla dobrą temperaturę, zegar chodzi dobrze, tylko ta wartość najwyższej temperatury jest inna. Może mi ktoś coś podpowie.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Mirek
Lekko zaangażowany


Dołączył: 01 Gru 2007
Posty: 62

PostWysłany: Pią Maj 15, 2009 6:58 pm    Temat postu: Odpowiedz z cytatem

Witam.
Z tego co wyczytałem, a także zauważyłem, to obsługa DS18B20 jest trochę kłopotliwa, gdy używa się także przerwań.
Ty dodatkowo masz jeszcze zegar--> musisz odpowiednio napisać program
Właśnie wtedy mogą co jakiś czas pokazywać się błędne odczyty...
I tu jest duży problem, jeżeli chcesz zapamiętać najwyższą, czy najniższą temperaturę.

Ja sobie poradziłem w jednym urządzeniu (był DS18B20 i przerwania)
w ten sposób:

1. Po odczycie temperatury z DS-a sprawdzałem, czy nie jest większa od 100 stopni -> jeżeli była, to pomijałem ten jeden pomiar.
Nie zależało mi również na temperaturach ujemnych, wię także sprawdzenie odczytu, czy temperatura nie jest niższa niż 0 stopni i wtedy także pominięcie tego pomiaru Wink

W powyższym przypadku zależało mi bardziej na wykonywaniu przerwań - co 20ms, natomiast na odczyt temperatury trzeba odczekać około 750 ms i tu czasami wyskakiwały błędy

2. Drugim sposobem byłoby zatrzymywanie wykonywania przerwań przed samym odczytem z DS-a, a po odczycie znowu zezwalasz na przerwania.
Ale w tym przypadku zależy wszystko od tego, w jaki sposób używasz przerwania Wink

No i trzeci sposób, jeżeli przerwania wykorzystujesz w odcinkach wiekszych niż trwa odczyt temperatury, to wystarczy odpowiednio napisać program, aby nie było konfliktu Wink
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ą Maj 15, 2009 7:28 pm    Temat postu: Odpowiedz z cytatem

Njprostrzym rozwiazaniem będzie:

Pomiar temperatury co 1 sekunda na przykład i jeśłi temperatura ma różnice większa o 5 stopni od poprzedniej to pomiar pomijasz- bo wiadomo w ciągi jednej sekundy czy nawet 2 temperatura nie podskoczy ani nie spadnie o 5 stopni- i problem masz rozwiązany.

A pracając do Twojego problemu- to nie szukał bym przyczyny w przerwaniach- oczywiście jak skożystałeż z programu zegara to on zeczywiście odczytuje czas w przerwaniu, ale Ty nie musisz tego robić- wyłącz zupełnie przerwania a odczytuj czas po tym jak odczytasz temperaturę (odczyt temperatury zajmuje prawie 1 sekundę), wiec będziesz miał problem z głowy.

Albo zrób jak podpowiada kolega na czas odczytu temperatury zatrzymaj timer " stop timer 1"
Po odczycie zrobisz " start timer 1"
i po sprawie

Oba usprawnienia powinny załatwić sprawę
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
beleco
Nowy


Dołączył: 21 Kwi 2009
Posty: 24

PostWysłany: Pią Maj 15, 2009 7:56 pm    Temat postu: Odpowiedz z cytatem

dzięki za pomoc. na początek zastosowałem warunek różnicy temperatur większych niż 5 st. teraz testuje, a jesli nadal bedzie sie cos działo bede sprawdzał nastepne podpowiedzi.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
beleco
Nowy


Dołączył: 21 Kwi 2009
Posty: 24

PostWysłany: Pią Maj 15, 2009 8:40 pm    Temat postu: Odpowiedz z cytatem

Jeszcze jedno pytanie odnośnie mojego projektu,
(pewnie bardzo banalne ale ja jakoś nie potrafię znaleźć odpowiedzi) jaki jest rozmiar pamięci eeprom, oraz czy posiadając płytkę testową atmega8 oraz programator USB będę umiał zgrać zawartość tej pamięci do pliku i edytować w excelu??
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 Maj 16, 2009 8:56 pm    Temat postu: Odpowiedz z cytatem

będziesz mógł zgrać pamiec, ale z edycją będzie gożej a napewno nie w exelu
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
beleco
Nowy


Dołączył: 21 Kwi 2009
Posty: 24

PostWysłany: Sob Maj 16, 2009 9:10 pm    Temat postu: Odpowiedz z cytatem

rafal, a jak bedzie wyglagał ten plik w kodzie ascii
i napisz mi ile moge zapisac danych weeprom
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 Maj 17, 2009 8:59 pm    Temat postu: Odpowiedz z cytatem

Plik możesz odczytac w bascom lub innym programem i go podejżeć a ilość zapianych danych zalezy od pwocesora- zerknij do PDF-a od procka który Cie interessuje
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
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