roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение ALHIMIK » 22 окт 2009, 19:14

а это идея... :roll:
правда прога основного чуток усложнится...
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Webspider » 10 ноя 2009, 23:25

подскажите, как на меге 8ой, реализовать ручную регулировку частоты импульсов на выходе одного из пинов?

думаю напряжение с питания через переменник подать на АЦП и в обработчике прерывания поместить результат преобразования в какую нибудь переменную, которой в майне потом задать длительность делэя на выходе одного из пинов:
main(){
While(1) {

PORTB.2++;
Delay_ms(переменная);
}
}
так можно?
Можт аппноуты есть какие по этой теме, не подскажите, или посоветуйте что-нибудь по коду?
Последний раз редактировалось Webspider 10 ноя 2009, 23:29, всего редактировалось 1 раз.
Webspider
 
Сообщения: 22
Зарегистрирован: 18 окт 2009, 12:36
Откуда: Самара

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение galex1981 » 10 ноя 2009, 23:28

А не проще ли организовать обычный ШИМ: время исполнения сигнала/время задержек
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Duhas » 10 ноя 2009, 23:30

нужна регулировка частоты... если МК больше ничего не делает то можно и в мэйне.. а можно и таймером.. поразному можно )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение MiBBiM » 10 ноя 2009, 23:47

да, можно. имхо стоит почитать про шим, ибо это скорее всего то, что наиболее подходит для решения вашей задачи (регулирование яркости светодиода, да?)
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Webspider » 11 ноя 2009, 13:38

нет. переменная -именно частота моргания того же светодиода. Длительность при заданной частоте =const.
Webspider
 
Сообщения: 22
Зарегистрирован: 18 окт 2009, 12:36
Откуда: Самара

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение MiBBiM » 11 ноя 2009, 13:41

ну на нет и суда нет. только вот переменная никак не будет частотой :)
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение ALHIMIK » 11 ноя 2009, 20:38

есть же частотная модуляция
для таймера 1
в качестве верхнего счёта выбираем OCR1A и всё
по переполнению счётчика обновляем занчение
а за скважность отвечает OCR1B(вроде)
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение SSG » 12 ноя 2009, 15:39

Неа. OCR1B - регистр сравнения второго канала. При генерации ШИМ сигнал можно гнать просто или неинвертированный, или инвертированный независимо по каждому каналу.
Частота импульсов при изменении регистра сравнения в режиме генерации ШИМ меняться не будет, будет меняться длительность нуля или единицы на выводе ОС.
Частоту можно регулировать используя режим сброс при совпадении (СТС). Тогда частота возникновения прерывания от таймера по переполнению будет зависеть от содержимого регистра сравнения.
I live My life!
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Duhas » 12 ноя 2009, 15:44

на сколько показала практика нелинейно )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение ALHIMIK » 12 ноя 2009, 19:47

ещё один недочёт евстифееву :bad:
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение Duhas » 12 ноя 2009, 19:50

читать надо не трудно выговариваемые фамилии. а даташиты )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение SSG » 12 ноя 2009, 20:32

А чем Евстифеев-то не угодил? :)
I live My life!
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение milkpower » 20 ноя 2009, 11:33

прошу помощи разобраться с таймерами, для начала пытаюсь запустить на 50гЦ, Set OC0 при сравнении.
Код: Выделить всёРазвернуть
.def   temp   = r16
.ORG $0
   rjmp RESET       
.ORG $06
   rjmp timer0
.ORG $1C
timer0:

   push temp
   clr temp
   out TCNT0,temp
   nop
   nop
   nop
   nop
   nop
   nop
   nop
   nop
   nop
   nop
   nop
   out portB,temp
   pop temp
   reti

reset:  ;init 8-bit timer on 50hz
   ldi temp,$ff
   out ddrB,temp
   ldi temp,144
   out OCR0,temp
   ldi temp,(1<OCIE0)
   out TIMSK,temp
   ldi temp,(1<COM00)|(1<COM01)|(1<CS02)|(1<CS00) ;set OC0, prescale=1024
   out TCCR0,temp
mloop:
   rjmp mloop


на пине нет никаких признаков жизни :(

ps. мк mega16
Последний раз редактировалось milkpower 20 ноя 2009, 11:54, всего редактировалось 1 раз.
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение =DeaD= » 20 ноя 2009, 11:34

2milkpower: Переходите уже на ARV Studio + WinAVR, мы вам быстренько поможем всё сделать, асм ужасен для таких задач :) да и можно будет взять с ORFA часть работающих вещей уже.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10