![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| iPlay |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 23.9.2007 Репутация: нет Всего: 1 |
Есть схемка не большая которая с каждым тактом генерирует 8192 раза нолик или единичку, эта схемка подключена к микроконтроллеру PIC18F4620, задача на МК запомнить эти 8192 бита(ну и потом передать по сети, эту задачу еще не решал, может скорее всего перейду потом на PIC18 c Ethernet). Вообщем пишу программку под МК чтобы запомнить биты, которые приходят на ножку RA0.
Открываю в отладчике MPLAB чтобы посмотреть EEPROM, а там вот что! Подумал что в EEPROM не произошла запись, написал код по проще:
Моделирую в Proteus, работает, на ножке RB0 появляется нолик, если указать нужный адрес и число. То есть в память пишет. Открываю отладчик EEPROM опять ничего Как быть? Я теперь просто не знаю пишет ли мой цикл, в коде выше, данные в eeprom или нет, думал вывести на LCD посмотреть, я еще пока с LCD не умею работать. Это сообщение отредактировал(а) iPlay - 20.2.2011, 10:01 |
||||
|
|||||
| iPlay |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 23.9.2007 Репутация: нет Всего: 1 |
Может я не правильно EEPROM просматриваю в MPLAB???
Это сообщение отредактировал(а) iPlay - 20.2.2011, 11:42 |
|||
|
||||
| iPlay |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 23.9.2007 Репутация: нет Всего: 1 |
Проблема оказывается в том что я не могу считать значение с ножки RA0. Скрин Прошлый пример проверил в память, в EEDATA регистр и EEADR пишется отлично, почему ничего нету в окне EEPROM не понятно, может не правильно схему собрал. Но всё таки я что не правильно считываю с RA0???
Это сообщение отредактировал(а) iPlay - 20.2.2011, 14:27 |
|||
|
||||
| iPlay |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 23.9.2007 Репутация: нет Всего: 1 |
И так всё по правил до вот такого вида
В результате работы, все отлично заносится в регистры EEDATA и EEADR, только во окно EEPROM в MPLAB до сих пор показывает что в eeprom ничего нет, может я чёто не так делаю? |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
iPlay, по заданному вопросу я ответить увы не смогу, т.к. с пиками никогда не работал и этот ваш MPLAB в глаза не видел. Но пару замечаний есть:
1. EEPROM очень капризная штука, поэтому записывать в эту память надо как можно реже. А вот читать можно сколько угодно раз. Поэтому перед записью делайте проверку - если в нужной ячейке хранится тоже самое значение, что вы хотите записать, то можно не записывать.
К тому же это позволит сэкономить чуток времени, т.к. операция записи в EEPROM длится довольно долго. 2. Если данные приходят извне и с ними надо работать оперативно, то незачем их сохранять в EEPROM. 3. Если верить описанию на ваш мк, то EEPROM у него всего 1024 байта. Вы же хотите записать в него в восемь раз больше. 4. Освойте логические побитовые операции. Сейчас вы храните каждый бит в одном байте, что является крайне избыточным вариантом. Такой массив даже в RAM не поместиться. Зато эти данные можно уложить в 1024 байта, что уже более-менее приемлимо. Это сообщение отредактировал(а) UniBomb - 21.2.2011, 09:19 |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Ещё пачка замечаний:
1. Вы как-то должны отлавливать момент начала генерирования этих самых 8192 ноликов и единичек, иначе вы рискуете считать мусор. 2. Непонятно также что такое "с каждым тактом генерирует 8192 раза нолик или единичку". Такт - это время между двумя импульсами генератора, соответственно за один такт максимум можно выдать только одно значение. Может быть имелось в виду за какое-то определённое время? 3. Также вызывает сомнение участок кода, когда происходит захват значения и запись его в EEPROM:
Получается, что вы захватываете значение с частотой 4 раза в секунду. Что ну никак не вяжется с "с каждым тактом генерирует 8192 раза" |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Есть у меня подозрение, что окошко, с содержимым EEPROM, которое вы смотрите, показывает содержимое EEPROM в вашей прошивке, а не в контролере
Хотя могу и ошибаться - последний раз в MPLab ходил несколько лет назад |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
xvr, было бы странно, если бы среда в режиме отладки не симулировала бы EEPROM в этом своём окошке
|
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (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. |