Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Массив из 40 переменных
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
VAHOO
Всем привет! помогите пожалуйста!

я TSOP1738 подключил к вывду INT0 ATmega88, и мне надо запомнить в EEPROM
значение TCNT0,то есть когда я любой пульт направляю на TSOP1738 и нажимаю на кнопку,
тагда надо мерить импулси, тоесть значение TCNT0 писать в EEPROM, но мы знаем что запись или чтение
EEPROM а 1,8мс а длниа одного импулса пульта примерна 889мкс или может еще менше,
по моему надо сначала значение TCNT0 писать в SRAM или в массив а потом в EEPROM,
количество элементы массива может менятся, это зависить от фирми пульта, махимум 40 элементов,
компилятор CVAVR,
как это сделать?

заранее сасибо!
Stanislav_S
Цитата(VAHOO @ May 2 2008, 23:52) *
..

Гм.. ну так и написать unsigned int MASS[40] если у вас один тик таймера равен 1 мкс, потом преобразовать допустим в пятибайтное типа unsigned char IMPULS[5]; и это уже писать в ЕЕПРОМ.

Moderator:
Крайне не желательно бездумно пользоваться цитированием.
VAHOO
1. как преобразовать в пятибайтное число?
2. а если количество элементов в массиве будеть не 40 а скажем 20?

вот кусок кода
.....

Moderator:
Обширные куски кодов оформляются ввиде приложения в архиве.
В теле сообщений для исходных текстов необходимо пользоватся форматированием.
VAHOO
посоветуйте пожалуйста!

в теле кода использую while(!PIND.2); но прерывание по таймеру 0 не происходит sad.gif
help.gif
vet
VAHOO,
зачем из-под CodeVision городить свои подпрограммы доступа к EEPROM?
а while вы используете в теле не просто кода, а другого прерывания.
и другое прерывание не наступит, пока не выйдете из текущего.
это раз.
два - таймер 0 вообще не запущен, и никаких прерываний, соответственно, генерить не будет.
читаем в даташите про регистры TCCR0A, TCCR0B.
три - чтобы прерывания от таймера происходили, их тоже надо явно разрешать, как и любые другие.
читаем про TIMSK0.
впрочем, в вашем случае достаточно просто внимательно отнестись к заполнению полей мастера CodeWizard.
VAHOO
Цитата(vet @ May 5 2008, 08:47) *
VAHOO,
зачем из-под CodeVision городить свои подпрограммы доступа к EEPROM?
а while вы используете в теле не просто кода, а другого прерывания.
и другое прерывание не наступит, пока не выйдете из текущего.
это раз.
два - таймер 0 вообще не запущен, и никаких прерываний, соответственно, генерить не будет.
читаем в даташите про регистры TCCR0A, TCCR0B.
три - чтобы прерывания от таймера происходили, их тоже надо явно разрешать, как и любые другие.
читаем про TIMSK0.
впрочем, в вашем случае достаточно просто внимательно отнестись к заполнению полей мастера CodeWizard.

Спасибо за советы!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.