Как создать таблицу в 24LC256 - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Как создать таблицу в 24LC256
Как создать таблицу в 24LC256
Ethno Дата: Пт, 03.01.2014, 19:30  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 93
Репутация: 0   ±
Замечания:   ±
На сайте с 11.12.2012

Статус: Offline

Всех с Новым годом.  Встала проблема как создать таблицу и как по нажатию кнопки в нее записать последовательно данные. Как записать одно значение разобрался..
К примеру нужно сделать таблицу 3 столбца 4 строки. По нажатии кнопки текущее значение переменной пишется в первую ячейку сверху вниз при заполнении всех строчек в столбце  переходит на следующий столбец. И как потом очистить эту таблицу. У кого есть примеры скиньте пожалуйста....
ЯНДЕКС Дата: 03.01.2014
ADMIN Дата: Сб, 04.01.2014, 11:16  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 93
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 93
Репутация: 0   ±
Замечания:   ±
На сайте с 11.12.2012

Статус: Offline

Спасибо сегодня попробую все в Протеусе. тогда отпишу, что получилось..
доцент2 Дата: Пн, 20.01.2014, 23:57  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 311
Репутация: 1   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 93
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 495
Репутация: 10   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Так пробелов же нету! Вы ж небось тупо скопировали?
Ethno Дата: Вт, 04.02.2014, 01:48  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 93
Репутация: 0   ±
Замечания:   ±
На сайте с 11.12.2012

Статус: Offline

Цитата mikhail09p ()
Так пробелов же нету! Вы ж небось тупо скопировали?
Почему нет пробелов.....
If SN3 = 0 Then BStart : BusOut %10100000 : BusOut x : BusOut var1 : Inc x : BStop
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Как создать таблицу в 24LC256
Страница 1 из 11
Поиск: