> aliens6
Вопросы по курсу:
Есть вопросы - это уже не плохо...
> aliens6
1.Почему в первом задании работает таймер, но мы не задавали TIMSK?(т.е. не включили таймер)
TIMSK - посмотри ДШ чем управляет этот регистр.
о прерываниях в задаче 03, в задаче 01 само прерывание не используется!
> aliens6
2.Как считать бит из порта (PIN)?
Сичтать весь регистр по времени столько же что и 1 бит, поэтому читают обычно регистр.
Возможно тебя интересует как узнать значение нужного бита в регистре?
если номер бита = BIT то можно так:
if (REGISTR && (1<<BIT)) {
если бит = 1 выполняется код здесь
}
else {
если бит = 0 выполняется код здесь
}
Если нужно подождать пока бит станет = 0
// на этой строчке зациклимся пока бит=1
while(REGISTR && (1<<BIT));
Если понял то
Задание: измени условия на противоположные.
> aliens6
3.Можно ли использовать знак |= дл превращения в 0, когда все единицы?
Если все единицы нужно превратить в 0 то просто обнули регистр
REGISTER = 0;
Если нужно сделать "0" или "1" какойто разряд (= отдельный бит) регистра
то посмотри пару страниц назад или задачу 1 курса.
Старайся точней формулировать вопросы! можно и чисел добавить.
> aliens6
4.Как считать данные по УСАРТ у
Грамотно принимать данные с UART не так просто!
Я очень рекомендую организовать буфер принимаемых символов, чтоб
застраховать себя от их пропуска, лучше запусти код генератор
CodeVisionAVR и сконфигурируй прием с нужной скоростью с прерываниями
и с буфером желаемого размера.
Тебе будет выдан код на Си.
Используй код генераторы - это очень удобно,
я использую оба и от ImageCraft ICC
> aliens6
5.Как сдвигать ? с помощью << не получается, или я е правильно пишу
Наверно не правильно пишешь. примеры выше и почитай это:
http://avr123.nm.ru/c_book.rar