CodeVision AVR в вопросах и ответах
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
да просто в CVAVR
0. ножка к светодиоду или вольтметру - выход, светодиод выключен.
1. delay_ms(1000); // пауза 1 сек для несуетности
2. включить светодиод
3. delay_ms(10000); // пауза 10 сек
4. вЫключить светодиод
5. while(1);
=======
Примеры CVAVR и задача 1 краткого курса.
0. ножка к светодиоду или вольтметру - выход, светодиод выключен.
1. delay_ms(1000); // пауза 1 сек для несуетности
2. включить светодиод
3. delay_ms(10000); // пауза 10 сек
4. вЫключить светодиод
5. while(1);
=======
Примеры CVAVR и задача 1 краткого курса.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Вообще-то все варианты ошибок начинающих ни в одну энциклопедию не вместить - варантов слишком много... Но молодец, что справился!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Начал воспроизводить звуки контроллером и стоkryekcz с тем что Delay в CodeVision может принимать только константы. А вот ICC вроде поддержывает так чтоли? Может мне просто взять delay.h из ICC и прикрутить к CodeVision?
There is only 10 kind of people: those who understands binary code and those who dont!!!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
только константы в delay_us()
а в delay_ms() можно переменные использовать.
Просто заимствовать библу из ICC наверно не получится.
а в delay_ms() можно переменные использовать.
Просто заимствовать библу из ICC наверно не получится.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
мда... не то чтобы проблема, но не приятно... прелесть встроенных функций задержки в том, что они одинаковы для любых частот МК. Да и с предложением взять библиотеку из ICC я погорячился - у меня там тока io****.h
а на микросекундных дэлеях особо не по пикаеш МК... надо будет чтонить придумать...
можно поподробней?
на базе delay_us() можно свою функцию написать
можно поподробней?
There is only 10 kind of people: those who understands binary code and those who dont!!!
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Можно.
Принцип тот же: делаете функцию, в ней цикл, прокручивающийся заданное параметром при вызове функции число раз, в цикле - delay_us(1)
Минусы те же: будет зависеть от тактовой (это, кстати, можно побороть, если задавать частоту в качестве одного из параметров функции и учитывать ее в расчетах задержки), невозможно получить очень короткие задержки.
Вообще, многое зависит от того, насколько точно Вам требуется выдерживать временные интервалы.
Принцип тот же: делаете функцию, в ней цикл, прокручивающийся заданное параметром при вызове функции число раз, в цикле - delay_us(1)
Минусы те же: будет зависеть от тактовой (это, кстати, можно побороть, если задавать частоту в качестве одного из параметров функции и учитывать ее в расчетах задержки), невозможно получить очень короткие задержки.
Вообще, многое зависит от того, насколько точно Вам требуется выдерживать временные интервалы.
Оптимизм х (Опыт + Знания) = const
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
А зачем для звуков микросекундные задержки? Неужели частоту звуковую формировать путем задержек?! Для этого таймер - самое то, у него есть режим "генератора частоты", есть аппаратный выход наружу, в конце-концов, прерывания есть... пищите сколько хотите 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Нашёл музыку на ATtiny2313 собраную в IAR... Там имеется непонятная мне конструкция, а именно
Что есть __delay_cycles? Переменная? Зарезервированное слово?
Хотел вот такую процедурку
Вот для чего...
Не нашёл... ARV, ткни носом в страницу в DataSheet.
----------
Возник вопрос о таком периферийном девайсе как Компаратор
Нашёл в Datasheet информацию о нём и вот возник вопрос о подключении испытываемых сигналов(опыта работы с компараторами не имею) - Итак: есть два источника тока, у каждого "+" и "-". Значит от одного берём "+" а от другого "-"? А то что осталось подводим к GND?
Код: Выделить всё
#define XTALL 8.0
#define delay_us(us) __delay_cycles (XTALL * us);
#define delay_ms(ms) delay_us (1000 * ms)
Что есть __delay_cycles? Переменная? Зарезервированное слово?
А зачем для звуков микросекундные задержки?
Хотел вот такую процедурку
Код: Выделить всё
void sound(double us, unsigned short duration)
{
int i;
sbi(DDRD,PD7);
for(i=0;i<duration;i++)
{
sbi(PORTD,PD7);
_delay_us(us);
cbi(PORTD,PD7);
_delay_us(us);
}
}
Вот для чего...
у него есть режим "генератора частоты"
Не нашёл... ARV, ткни носом в страницу в DataSheet.
----------
Возник вопрос о таком периферийном девайсе как Компаратор
Нашёл в Datasheet информацию о нём и вот возник вопрос о подключении испытываемых сигналов(опыта работы с компараторами не имею) - Итак: есть два источника тока, у каждого "+" и "-". Значит от одного берём "+" а от другого "-"? А то что осталось подводим к GND?
There is only 10 kind of people: those who understands binary code and those who dont!!!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Negor писал(а):Не нашёл... ARV, ткни носом в страницу в DataSheet.
Тыкаю: Datasheet ATTiny2313 preliminary Rev. 2543I–AVR–04/06, страница 66. Читаем:
datasheet писал(а):• Two Independent Output Compare Units
• Double Buffered Output Compare Registers
• Clear Timer on Compare Match (Auto Reload)
• Glitch Free, Phase Correct Pulse Width Modulator (PWM)
• Variable PWM Period
• Frequency Generator
• Three Independent Interrupt Sources (TOV0, OCF0A, and OCF0B)
Выделено - это как раз "генератор частоты". Это для Timer0, для Timer1 (16-бит) аналогично.
Negor писал(а):Возник вопрос о таком периферийном девайсе как Компаратор
Нашёл в Datasheet информацию о нём и вот возник вопрос о подключении испытываемых сигналов(опыта работы с компараторами не имею) - Итак: есть два источника тока, у каждого "+" и "-". Значит от одного берём "+" а от другого "-"? А то что осталось подводим к GND?
Компаратор - это устройство сравнения аналоговых уровней напряжения. На его входы + и - подаются напряжения (для МК - от 0 до VСС). Если уровень на входе + будет больше, чем на входе -, на выходе компаратора будет 1, иначе на выходе будет 0. Компаратор МК различает разницу в уровнях примерно 20 мВ. Ну, остальное разберешься.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Так.... словил грабельки
Впечатления не самы лучшие... обновлённый DataSheet я так понимаю можно качать прям с сайта Атмел? Правда у меня Rev. 2543H-AVR-02/05 Во как бывает...
----------
Обновлённый даташит скачал... Действительно там есть такие строчки как написал ARV Но режимов всё равно осталось четыре - Normal, CTC, Fast PWM, Phase correct PWM. Вобщем судя по всему мне нужно запустить таймер в режиме Fast Pwm чтоб считал до OCR0B. А OCR0A у меня всегда будет 0,5*OCR0B... И так частоту буду регулировать OCR0B.... как затея? Кажется бредятина получилась...
----------
Обновлённый даташит скачал... Действительно там есть такие строчки как написал ARV Но режимов всё равно осталось четыре - Normal, CTC, Fast PWM, Phase correct PWM. Вобщем судя по всему мне нужно запустить таймер в режиме Fast Pwm чтоб считал до OCR0B. А OCR0A у меня всегда будет 0,5*OCR0B... И так частоту буду регулировать OCR0B.... как затея? Кажется бредятина получилась...
There is only 10 kind of people: those who understands binary code and those who dont!!!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Negor, читай стр. 70 даташита: Compare Output Mode and
Waveform Generation
Для этой функции используется режим сброса таймера при достижении счетчиком значения OCRхх - но при этом активируется аппаратный выход (прерывания не нужны) toggle OCxx. Заносишь в OCRxx нужное тебе значение (равное половине периода твоей "звуковой" частоты) - и на выходе ОСхх у тебя меандр нужной частоты - пищи, сколько захочешь...
Waveform Generation
Для этой функции используется режим сброса таймера при достижении счетчиком значения OCRхх - но при этом активируется аппаратный выход (прерывания не нужны) toggle OCxx. Заносишь в OCRxx нужное тебе значение (равное половине периода твоей "звуковой" частоты) - и на выходе ОСхх у тебя меандр нужной частоты - пищи, сколько захочешь...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Я так сразу хотел сделать
А вообще я расчитывал научится выводить звук из любого места контроллера(в смысле любой ножкой) поэтому наверно прерываниями всётаки воспользуюсь... Единственное что смущает - что изменение OCR0x наступает мгновенно...
А вообще я расчитывал научится выводить звук из любого места контроллера(в смысле любой ножкой) поэтому наверно прерываниями всётаки воспользуюсь... Единственное что смущает - что изменение OCR0x наступает мгновенно...
There is only 10 kind of people: those who understands binary code and those who dont!!!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Собственно вопрос наверно программы не коснётся... хотя... вобщем - почему не выводятся циферки с пом. динам. индикации в этом проэкте?
- Вложения
-
- Clock.rar
- (31.07 КБ) 727 скачиваний
There is only 10 kind of people: those who understands binary code and those who dont!!!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Итак, после некоторого простоя моего обучения(причина уважительная) продолжаю. Нашёл у себя дисплейчик Winstar WH1602B и захотел его к МК (всё таже старушка Tiny2313) подрубить. Даташит нашёл - вроде алгоритмы работы ничем не отличается от стандартных для HD44780. Написал на асме инициализацию - ничего(картинка в ходе работы не меняется). Запустил CodeVision и в мастере набросал сначало просто пустой проэкт(только инициализация). На экранчике после запуска мигающий курсор. Но тут радости пришёл конец. Потому что любая попытка вывода результатов не дала. Единственной реакцией дисплея был сдвиг курсора. Перемещение курсора командами lcd_gotoxy() давала такой же результат. и можно было бы сказать что "стандарту не соответствует" НО! При подключении дисплэя к ПК по 7 бит шине(также стандартные схемы коих полно в сети) всё работает!
Даташит к дисплею
Даташит к дисплею
There is only 10 kind of people: those who understands binary code and those who dont!!!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Negor писал(а):Запустил CodeVision и в мастере набросал
Посмотри примеры CVAVR и посимулируй в VMLAB - он "говорит" что не так.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Так в том то и прикол, что на симуляторах всё гут. Я правда в proteus делал. Я думаю принципиальных отличий нет.... Я например брал проэкт из статей("подключаем LCD" кажется называется... или что-то в этом роде. Pa5ha делал) Так на экранчике муть какая-то писалась
There is only 10 kind of people: those who understands binary code and those who dont!!!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Монтаж проверяй тогда.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru