![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| Denver |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.2.2005 Репутация: нет Всего: нет |
Вообщем задача такая: через каждый час нужно сохранять данные во внешней памяти (вести архив 5 суток), каждый час вычесляю новый адрес записи архива и записываю его.
Также требуется просмотр архива. Аналогично вычисляю адрес просмотра и считываю данные. Но сколько не записываю выводится только последний архив, но адрес считывания исправно меняется на следующий. В чем может быть причина? Если надо могу отправить подпрограммы чтения/записи. Заранее спасибо. |
|||
|
||||
| Hobo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 15.4.2004 Репутация: нет Всего: нет |
Память какая
|
|||
|
||||
| jimmi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
Это сообщение отредактировал(а) jimmi - 7.9.2005, 17:18 |
|||
|
||||
| Denver |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.2.2005 Репутация: нет Всего: нет |
Проц ATmega128
Память FRAM(FM25640) Насчет работает-неработает. подпрограмма рабочая, только использовалась с EEPROM, а мне надо со внешней FRAM. |
|||
|
||||
| jimmi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
Это сообщение отредактировал(а) jimmi - 7.9.2005, 17:19 |
|||
|
||||
| jimmi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
Это сообщение отредактировал(а) jimmi - 7.9.2005, 17:21 |
|||
|
||||
| Denver |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.2.2005 Репутация: нет Всего: нет |
у меня само вычесление адреса с обычными регистрами, а передача адреса косвенно.
Да, и как понять куда пишется и от куда читается. Точнее сказать пишу каждый раз в новый (инкрементный) адрес, а считать должен изначально с первого и перемещаясь к последнему. Ниже фрагмент проги записи во FRAM архива. lds r16,BYTE_F_FM sbr r16,1 ; установить флаг "КОП WREN (разрешение записи во FRAM)" sts BYTE_F_FM,r16 ldi r16,0x06 cbi PORTB,PB5 ; установить флаг "FRAM выбран" out SPDR,r16 ; записать КОП в регистр данных SPI wait11: sbis PINB,PINB5 rjmp wait11 lds r16,BYTE_F_SPI sbr r16,1 ; установить флаг "запись" sts BYTE_F_SPI,r16 ldi r16,15 sts CNT_SPI,r16 ; записать кол-во байт записи ldi r16,high(AhData) sts ADR_BUF,r16 ; записать ст. байт нач. адрес буфера записи ldi r16,low(AhData) sts ADR_BUF+1,r16 ; записать мл. байт нач. адрес буфера записи lds r16,BYTE_F_FM sbr r16,2 ; установить флаг "ст. байт адреса FRAM" sts BYTE_F_FM,r16 lds r16,PHA+1 ldi r17,15 call mul8u_8u ; r17..r16=PHA*15 ldi r18,0x30 clr r19 add r16,r18 adc r17,r19 ; r17..r16=PHA*15+нач.адрес записи(0x30) sts ADR_FM,r17 ; записать ст. байт адресa FRAM sts ADR_FM+1,r16 ; записать мл. байт адресa FRAM ldi r16,0x02 cbi PORTB,PB5 ; установить флаг "FRAM выбран" out SPDR,r16 ; записать КОП в регистр данных SPI wait1a: sbis PINB,PINB5 rjmp wait1a lds r20,PHA+1 ; нарастить счетчик записей часового архива inc r20 cpi r20,168 ; 168 часов (7 суток) brne hour_1 clr r20 lds r16,AOF sbr r16,1 sts AOF,r16 lds r16,BYTE_F_RTC sbr r16,0x01 ; уст.фл"Запись в RTC AOF" sts BYTE_F_RTC,r16 hour_1: sts PHA+1,r20 |
|||
|
||||
| jimmi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
Это сообщение отредактировал(а) jimmi - 7.9.2005, 17:17 |
|||
|
||||
| Denver |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.2.2005 Репутация: нет Всего: нет |
в примере я показал как изменяется адрес, здесь глюков не должно быть.
Самое интересное что считывает последний архив, хотя устанавливаю адрес первого архива. да, ешё прикол читаю с любой ячейке памяти, читается то, что записывалось последний раз в архив, хотя адреса вообще не совпадает. Как точно определить адрес записи? |
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |