Всех с Новым годом. Встала проблема как создать таблицу и как по нажатию кнопки в нее записать последовательно данные. Как записать одно значение разобрался.. К примеру нужно сделать таблицу 3 столбца 4 строки. По нажатии кнопки текущее значение переменной пишется в первую ячейку сверху вниз при заполнении всех строчек в столбце переходит на следующий столбец. И как потом очистить эту таблицу. У кого есть примеры скиньте пожалуйста....
Не вполне понятно, что имеется в виду под таблицей, но предложу следующее: типа такого: for i = 0 to 3 for j = 1 to 10 step 3 i2COUT i+j, [x]delayms 10 next j next i Думаю, смысл понятен?
Если запись осуществляется последовательно, значение за значением, то в программе перед записью организуется счетчик адреса записи и инкрементируется на количество байт записи байт записи (начальное значение =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
Здрасте! Так Вы записываете значение вар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
в двух словах Вы должны менять адрес ячейки, а потом и читать когда будите, не забудте про адрес, что конкретно хотите прочитать.
Вот пример для последовательной записи и чтения с 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