Как создать таблицу в 24LC256
|
|
Ethno |
Дата: Пт, 03.01.2014, 19:30 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 11.12.2012
Статус:
Offline
|
Всех с Новым годом. Встала проблема как создать таблицу и как по нажатию кнопки в нее записать последовательно данные. Как записать одно значение разобрался.. К примеру нужно сделать таблицу 3 столбца 4 строки. По нажатии кнопки текущее значение переменной пишется в первую ячейку сверху вниз при заполнении всех строчек в столбце переходит на следующий столбец. И как потом очистить эту таблицу. У кого есть примеры скиньте пожалуйста....
|
|
|
|
ADMIN |
Дата: Сб, 04.01.2014, 11:16 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Не вполне понятно, что имеется в виду под таблицей, но предложу следующее: типа такого: for i = 0 to 3 for j = 1 to 10 step 3 i2COUT i+j, [x]delayms 10 next j next i Думаю, смысл понятен?
|
|
|
|
anatol |
Дата: Сб, 04.01.2014, 21:55 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Если запись осуществляется последовательно, значение за значением, то в программе перед записью организуется счетчик адреса записи и инкрементируется на количество байт записи байт записи (начальное значение =0). Стирание можно провести записью с "0" ячейки до последней записи "hh" (=255 в десятичном) или командами стирания. Но надо учесть что стирание чаще всего происходит страницами, можно стереть и полезное. Второй случай - прямоугольная таблица, знакоместо высчитывается в программе и преобразуется в адрес. С него и начинается запись количества байт. Не забывайте что счет начинается с нуля. К примеру таблица 5х10. Записать в 4 строку 9 столбец 5 байт информации. 4х9=36..... В десятичном исчислении это 36 ячейка, а в реале 35 (счет с нуля) Т.е. у нас заполнены 34 ячейки....или 34х5=170 байт. Начало записи будет по адресу 171 байта пять байт.
Сообщение отредактировал
anatol - Сб, 04.01.2014, 22:07
|
|
|
|
Ethno |
Дата: Вс, 19.01.2014, 22:14 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 11.12.2012
Статус:
Offline
|
Так и не смог разобраться как писать последовательно по нажатию кнопки...
var1 = ADIn 0
BStart ' Послать условие Start
BusOut %10100000 ' Послать на EEPROM команду записи BusOut 0 ' Отправить старший байт адреса
BusOut 0 ' Отправить младший байт адреса If SN1 = 0 Then DelayMS 150: ' BusOut var1 ' Послать значения LOOP на EEPROM
BStop ' Послать условие STOP DelayMS 10 Работает записывает только текущее значение а предыдущее убирает. что не так....??
Сообщение отредактировал
Ethno - Вс, 19.01.2014, 22:16
|
|
|
|
MiXaS |
Дата: Пн, 20.01.2014, 23:30 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Здрасте! Так Вы записываете значение вар1 в один и тот же адрес, а потом спрашиваете, почему не работает? У вас есть 256 ячеек размером в байт, адрес их считается от 0. Пишу с планшета очень неудобно, поэтому напишу на пальцах.
dim x as byte var1=adin0 x=0
main:
if sn1=0 then Bstart: BusOut %10100000: BusOut x : Busout var1 : inc x: bstop DelayMS 10
goto main
в двух словах Вы должны менять адрес ячейки, а потом и читать когда будите, не забудте про адрес, что конкретно хотите прочитать.
|
|
|
|
Ethno |
Дата: Пн, 20.01.2014, 23:40 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 11.12.2012
Статус:
Offline
|
Спасибо сегодня попробую все в Протеусе. тогда отпишу, что получилось..
|
|
|
|
доцент2 |
Дата: Пн, 20.01.2014, 23:57 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
291
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Вот пример для последовательной записи и чтения с 24С32 (у нее нет банков, читается с 0 и до последнего адреса) GPIO.5 Линия SDA шины I2C GPIO.4 Линия SCL шины I2C
For adress=adress_start To adress_end I2CIn GPIO.5, GPIO.4,$A0, adress, [Dan]'считываем данные из EEPROM в переменную Dan Next adress
For adress=adress_start To adress_end I2COut GPIO.5,GPIO.4,$A1, adress, [Dan]'записываем в EEPROM данные из переменной Dan Nextadress
Сообщение отредактировал
доцент2 - Вт, 21.01.2014, 00:01
|
|
|
|
Ethno |
Дата: Вс, 02.02.2014, 23:49 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 11.12.2012
Статус:
Offline
|
Цитата MiXaS ( ) if sn1=0 then Bstart: BusOut %10100000: BusOut x : Busout var1 : inc x: bstop Добрый день .... на этой строке Proton пишет ошибку, что может быть не так?
|
|
|
|
mikhail09p |
Дата: Вт, 04.02.2014, 00:00 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Так пробелов же нету! Вы ж небось тупо скопировали?
|
|
|
|
Ethno |
Дата: Вт, 04.02.2014, 01:48 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 11.12.2012
Статус:
Offline
|
Цитата mikhail09p ( ) Так пробелов же нету! Вы ж небось тупо скопировали? Почему нет пробелов..... If SN3 = 0 Then BStart : BusOut %10100000 : BusOut x : BusOut var1 : Inc x : BStop
|
|
|
|