Свежие обсуждения
Микроконтроллеры

AVR начинающим - вопросы и ответы

1 38 68

Вопрос решился. Кому может быть пригодиться. Писал на ИАРе.
Сигнал имеет вид IIIIIIII___________IIIIIIII

//#### Генерация пачки импульсов и паузы между ними ########
#pragma vector=TIM1_COMPB_vect
__interrupt void Timer(void)
{
n++;
if (n==8) // количество импульсов в пачке
{
TCCR1A=0x00;
}
Count50ms++;
if (Count50ms==500) // Длительность паузы между пачками
{
TCCR1A=0x21;
Count50ms=0; n=0;
}
}

 

shemmer: Писал на ИАРе.
А как в ИАРе включить, выключить глобально прерывания?

 

SREG |= (1 < 7);
Что то у меня знак сдвига не ставится

 

Привет всем новичкам!!!
Могу предложить пару ссылок где есть программы для программирования и различная литература

http://depositfiles.com/files/ha5v8xvvc - литература

 

Подскажите с какого адреса располагается EEPROM в AtTiny2313?
Она может вообще идет отдельным блоком или как?
Просветите...

 

Она не в адресном пространстве вообще, а доступ через 3 регистра - данных, адреса 0-FF, и управления.

 

Очевидно, имеется в виду адрес указателя ORG xxxx для компилятора. Для пиков, конструкция в программе:
ORG 2100
de 0x01, 0x02 и т.д.
Сообщает компилятору то что пользователь хочет разместить в EEPROM c ячейки с адресом 0x00 данные 0x01, 0x02.... Т.е. в результате будет создан hex с телом программы и данными для записи в EEPROM 2в1.
Как это делается для авр не знаю.

 

Посмотрите , я тут функцию наваял, правильно?
Аргумент -структура.
unsigned char Filter ( struct data *ptr){
ptr->Sum -= ptr->tmp[ind];
ptr->tmp[ind]= ADCH;
ptr->Sum += ptr->tmp[ind];
return ((unsigned char)((ptr->Sum /8)));
};
Компилятор не ругается.
И еще вопрос :
внутре структуры переменная инт и байтовый массив - неужели низя до них добраться только с помощью указателей (без использования индексов)?

 

По-моему, правильно.

Добраться можно, например, так


char *ptmp;
ptmp=ptr->tmp;

Ну и дальше работать с ptmp как с указателем на элемент структуры, неважно, переменная это или массив.
Скажем

ptmp=ptmp+ind;

Или

ptmp++;

 

Про EEPROM вот, например:
http://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-eeprom.html

Правда на ассемблере, но не думаю что перегнать на Си будет проблемой