Zapis opisu na LCD w pamięci AT24C256 przy ograniczonej pamięci AT89C4051
Programowanie AT24C256
From: "prasco" <prasco_at_nospam_op.pl>
Subject: Programowanie AT24C256
Date: Thu, 13 Feb 2003 00:22:18 +0100
Mam program w którym do obsługi sterownika wykorzystuje wiele zmiennych. Z
pewnych względów sterownik jest obsługiwany przez mikrokontroler AT89C4051 a
wszystkie zmienne nie mieszczą się w pamięci. Chodzi tu o wartości napięć,
ustawienia stanów wyjść i odpowiednie opisy na wyświetlaczu. I właśnie z tym
jest problem-jak zapisać coś w tej kości np taki opis na LCD "Parametr C7AA
OK" ?
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: zenek <zenek1234_at_nospam_onet.pl>
Subject: Re: Programowanie AT24C256
Date: Thu, 13 Feb 2003 03:02:30 +0100
Użytkownik prasco napisał:
Mam program w którym do obsługi sterownika wykorzystuje wiele zmiennych. Z
pewnych względów sterownik jest obsługiwany przez mikrokontroler AT89C4051 a
wszystkie zmienne nie mieszczą się w pamięci. Chodzi tu o wartości napięć,
ustawienia stanów wyjść i odpowiednie opisy na wyświetlaczu. I właśnie z tym
jest problem-jak zapisać coś w tej kości np taki opis na LCD "Parametr C7AA
OK" ?
Chodzi ci o ogolna koncepcje, czy konkretnie
o szczegolowa procedure programowania kosci ?
Bo ogolna koncepcja ktora u mnie sie sprawdzila dla
niewielkiej liczby napisow:
ladowac do pamieci lancuchy znakow po kolei
rozdzielajac je "zerem" i dorobic procedurke
ktorej jako parametr zapodajesz "numer" lancucha,
ktora potem wyszukuje z eproma -n-ty lancuch
i zwraca go.
Niestety jest to w teorii dosc wolne (czytasz zawsze kazdy
znak po znaku - dla lancucha na samym koncu opoznienie jest
juz widoczne), ale w praktyce
jak wyswietlasz pewne lancuchy znakow bardzo rzadko,
to 0,5 sek. czekania nie przeszka za bardzo.
A te co czesciej uzywasz, wsadzasz na poczatek eeproma.
zenobi
========
Newsgroups: pl.misc.elektronika
Subject: Re: Programowanie AT24C256
Date: Thu, 13 Feb 2003 04:36:22 +0100
Lines: 10
References: <b2el2q$nct$1_at_nospam_news.onet.pl> <b2eu96$d90$1_at_nospam_atlantis.news.tpi.pl>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-2
Content-Transfer-Encoding: 8BIT
X-Trace: localhost.localdomain 1045107382 9474 127.0.0.1 (13 Feb 2003 03:36:22 GMT)
NNTP-Posting-Date: Thu, 13 Feb 2003 03:36:22 +0000 (UTC)
In-Reply-To: <b2eu96$d90$1_at_nospam_atlantis.news.tpi.pl
From: =?iso-8859-1?Q?Rafa=B3?= Lech <info_at_nospam_tango.neostrada.pl>
Subject: Re: Programowanie AT24C256
Date: Thu, 13 Feb 2003 08:12:11 +0100
Bo ogolna koncepcja ktora u mnie sie sprawdzila dla
niewielkiej liczby napisow:
ladowac do pamieci lancuchy znakow po kolei
rozdzielajac je "zerem" i dorobic procedurke
ktorej jako parametr zapodajesz "numer" lancucha,
ktora potem wyszukuje z eproma -n-ty lancuch
i zwraca go.
Niestety jest to w teorii dosc wolne (czytasz zawsze kazdy
znak po znaku - dla lancucha na samym koncu opoznienie jest
juz widoczne), ale w praktyce
jak wyswietlasz pewne lancuchy znakow bardzo rzadko,
to 0,5 sek. czekania nie przeszka za bardzo.
A te co czesciej uzywasz, wsadzasz na poczatek eeproma.
zenobi
To zamiast umieszczania zer jako znacznikow mozna umiesciec bajt dlugosci tekstu
i wtedy skaczesz o zadeklarowana liczbe bajtow i nie przeszukujesz calego
lancucha. Co wydatnie przyspiesza operacje.
Rafal
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!lublin.pl!news.onet.pl!not-for-mai
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: Programowanie AT24C256
Date: Thu, 13 Feb 2003 21:16:22 GMT
On Thu, 13 Feb 2003 08:12:11 +0100, Rafał Lech wrote:
ladowac do pamieci lancuchy znakow po kolei
rozdzielajac je "zerem" i dorobic procedurke
ktorej jako parametr zapodajesz "numer" lancucha,
ktora potem wyszukuje z eproma -n-ty lancuch i zwraca go.
To zamiast umieszczania zer jako znacznikow mozna umiesciec bajt dlugosci tekstu
i wtedy skaczesz o zadeklarowana liczbe bajtow i nie przeszukujesz calego
lancucha. Co wydatnie przyspiesza operacje.
Mozna, ale czemu nie zrobic tablicy adresow ?
J.
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!lublin.pl!news.onet.pl!not-for-mai
From: "prasco" <prasco_at_nospam_op.pl>
Subject: Re: Programowanie AT24C256
Date: Thu, 13 Feb 2003 13:00:59 +0100
Chodzi ci o ogolna koncepcje, czy konkretnie
o szczegolowa procedure programowania kosci ?
Szczegółówą procedurę programowania kości znam. Dokładniej mam tablicę - 4
kolumny (Nr pocedury, DAC1, DAC2, Opis). Pierwsza kolumna jest liczbą
całkowitą z zakresu 0-4095, dwie kolejne to wartości byte, ostatnia to
string[20].
Na czasie specjalnie mi nie zależy, bo to są wartości przypisane do funkcji
wprowadzanych z klawiatury. Powiedzmy, że chciałbym zapisać w pamięci coś
takiego (3 kolejne wiersze, kolumny rozdzielam teraz przecinkami):
1142,125,32,"Parametr CAK1 OK"
1143,125,64,"Parametr CAK4 OK"
1144,195,96,"Zasilanie CAFF OK"
i takich pozycji jest 4096. Kombinuję już nad tym od dłuższego czasu i niby
wszystko ok, ale jak zapisać i jak później odszukać coś w tym wszystkim wg
numeru procedury? Może ktoś ma na to pomysł, ew przykład np w Bascomie jak
to zrealizować.
Prasco
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!lublin.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: zenek <zenek1234_at_nospam_onet.pl>
Subject: Re: Programowanie AT24C256
Date: Thu, 13 Feb 2003 17:02:15 +0100
Użytkownik prasco napisał:
Chodzi ci o ogolna koncepcje, czy konkretnie
o szczegolowa procedure programowania kosci ?
Szczegółówą procedurę programowania kości znam. Dokładniej mam tablicę - 4
kolumny (Nr pocedury, DAC1, DAC2, Opis). Pierwsza kolumna jest liczbą
całkowitą z zakresu 0-4095, dwie kolejne to wartości byte, ostatnia to
string[20].
Na czasie specjalnie mi nie zależy, bo to są wartości przypisane do funkcji
wprowadzanych z klawiatury. Powiedzmy, że chciałbym zapisać w pamięci coś
takiego (3 kolejne wiersze, kolumny rozdzielam teraz przecinkami):
1142,125,32,"Parametr CAK1 OK"
1143,125,64,"Parametr CAK4 OK"
1144,195,96,"Zasilanie CAFF OK"
i takich pozycji jest 4096. Kombinuję już nad tym od dłuższego czasu i niby
wszystko ok, ale jak zapisać i jak później odszukać coś w tym wszystkim wg
numeru procedury? Może ktoś ma na to pomysł, ew przykład np w Bascomie jak
to zrealizować.
Prasco
deklarujesz sobie zmienne A-word, B,C-byte, D-string, i E-byte (tyle ile danych
w wierszu)
robisz sobie procedure CZYTAJ_REKORD ktora czyta sekwencyjnie bajt po bajcie i
sklada to do kupy wpisujac do zmiennych A ... E (do E-koncowe 0), (jesli A=0,
znaczy ze wyszles poza tablice i nie ma juz rekordow)
robisz druga procedure ktorej przekazesz w jakiejs zmiennej powiedzmy Z numer
rekordu
ktorego szukasz i ktora wygladac bedzie jakos tak:
- ustaw adres epromu do czytania na adres poczatku tablicy
- rob w petli
czytaj 1 rekord (CZYTAJ_REKORD)
jak A = Z - to wyjdz z petli, bo znalazles
jesli A <> 0 powtorz petle
w tym miejscu (za petla) jak A=0 znaczy wyjechal poza tablice (nie znalazl -
error ?), a jak A = Z, to w zmiennych A,B,C ... E masz odpowiednie wartosci
w bascomie zapisz sobie to juz sam
zenek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.rmf.pl!news.ipartners.pl!news.internetia.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai