Здраствуйте, вот собрал все что надо, схему спаял, вроде компилятор работате нормально.
есть проблема, я сам умю проргаммировать на си и си++ , но у меня проблемы с программирование конкректно для авр, т.е я не могу найти учебника, или справочника, где бы было расписано , че за команда и для чего нужна. есть примеры кода, но в одном порт для вывода обнулятеся OxFFFF а в другом 0x0000 .
работу таймера вообще понимаю. че за
TCCR1B = 0x00; // Stop Timer1
TCNT1H = 0x00; // Clear Timer1 TCNT1L = 0x00;
как запустить таймер, как он изменяется , как вообще с ним работать?
в общем, может ктото помочь разобраться с этим всем, буду признателен также за ссылки или книги, статьи, что угодно.
компилятор ICC
РС! авр123 , не шли меня в свой курс, от цветного текста и частых повторений у меня болит голова, и создается впечатление что я уволень, каторый ничего не понимает
Насчет того, что где-то что-то обнуляеся,- немогу сказать(ни вижу ни первого ни второго кода). А про таймеры скажу немного. TCCR1B = 0x00; // Stop Timer1 Это регистр, который управляет таймером (запуск и остановка) если он очищен (0), то таймер остановлен. Если в него записать, например, 1,- то он будет тикать с частотой генератора. Но можно и с делителем.
В регистр TCNT1 можно записать число, с которого он начинает считать. Зачастую его просто обнуляют перед стартом. Также из него можно считать чило, до которого сейчас досчитал Т/С1.
Для примера приведу решение задержки с использованием т/с1:
void delay(unsigned int t) { TCNT1=0;//начало счета с нуля TCCR1B=1;//запускаем таймер с частотой такт ген while(TCNT1<=t)// сравниваемтекущее значение таймера с требуемым {} TCCR1B=0;//останавливаем таймер }
З.Ы. Для расширения кругозора Таймер и Счетчик разные понятия. Счетчик считает внешние тактовые импульсы, а Таймер от внутреннего генератора.
Аналоговый компаратор сравнивает входные напряжение на положительном входе AIN0 и отрицательном входе AIN1. Когда напряжение на положительном входе больше напряжения на отрицательном, устанавливается бит ACO (Analog Comparator Output) регистра ACSR. В краце это все. :) Более подробно узнать о назначении регистра ACSR можно, например, в дэйтешите а контроллер.
Johnny Bravo писал(а):Аналоговый компаратор сравнивает входные напряжение на положительном входе AIN0 и отрицательном входе AIN1. Когда напряжение на положительном входе больше напряжения на отрицательном, устанавливается бит ACO (Analog Comparator Output) регистра ACSR.
причем увидеть "осцилограмму" состояния этого бита - т.е. выхода компаратора - можно только в симуляторе VMLAB - см. http://avr123.nm.ru/04.htm
Внимательно изучаю курсы avr123.nm.ru!!! Но для закрепления материала, можно еще раз об регистрах... что это такое я понял. Но не совсем понял, т.е. для каждого бита регистра есть свое название? Или свой адрес? Запутался немного! И еще - реально ли программу написанную на ассемблере переделать под С, т.е. не переписывать а конвертировать?
Так, в плэй офф. Некоторые команды конечно можно, нокак быть с условиями скажем и т.д. Одна си - мэни асм. Лучший вариант - знать и то и другое. Я к примеру пишу на с, ОЧЕНЬ часто анализирую асм в поисках решений, но НЕ перевариваю его (асм) одновременно.