Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Kvomdoyk
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 4
1

Atmega16a

31.10.2016, 00:13. Просмотров 2650. Ответов 6
Метки нет (Все метки)

Я новичок, собрал на макетных платах схему где с компа по USB проводу поступают сигналы на микроконтроллер и далее на ключи которые в следующую очередь должны вращать шаговый двигатель, есть программа для attiny2313a и программа написанная на Визуал С++ для управления с компа, но у меня контроллер не attiny a atmega16a, Попробовал внести изменения в main.c (см фото)к портам, выходит напряжение 5 v на всех портах PB0-PB7, можно отключать, + и -, а когда начинаешь подавать команду на вращение светодиодик на одном из портов начинает мерцать, а напряжение падает до 2.5 вольта. Помогите разобраться где нужно поменять код в прошивке или же в Визуал (http://openrobo.ru/soft/usb_vc_2010_express.zip). Прошу помочь в изменении кода чтоб всё получилось. За ранее спасибо, и не серчайте за то что ничего ещё не понимаю))



[114.99 Кб]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 00:13
Ответы с готовыми решениями:

ATMega16 vs ATMega16A
Доброго времени суток, возможно данную тему необходимо отнести в форум "Детские вопросы:)" Как я...

Atmega16A, АЦП
Доброго времени суток! Изучаю по-техонечку AVR-ы и вот добрался в сваем кантралере до модуля АЦП....

Хрень с ATMega16a
Имеется ATMiko16a с внешним кварцем на 16МГц. При задании фьюзом внешнего кварца выходит частота не...

Atmega16A не шьется
Здравствуйте Что то не шьется Atmega16A через AVR USB программатор на FT232RL хотя его собрат в...

ATmega16A шим исходники
Друзья может быть у кого-нибудь есть исходники для аппаратного шима ATmega16, где можно изменять...

6
VyvotzorD
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 2,309
31.10.2016, 01:37 2
А в коде ли дело? Железо-то нормально собрано? И где напряжение 2.5В становится?
0
Kvomdoyk
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 4
31.10.2016, 09:58 3
Цитата Сообщение от VyvotzorD
А в коде ли дело? Железо-то нормально собрано? И где напряжение 2.5В становится?
Железо нормально, по сути атмега подключена к основным входам по напряжению и резонатор, и входы управления с усб через резисторы и диоды зеннора для уменьшения сигнала.... не суть . суть в том что при нажатии команды с программы (см. рисунок) прокрутки двигателя допустим на 4000 шагов, происходит мерцание на всех выходах PB0-PB7 (если подключить светодиод -ы) и напряжение падает до 2,5 в. Значит с программы идёт команда, а мк из-за неправильно за программируемых портов начинает неправильно воспринимать. Помогите разобраться с файлом main.c или же с прогой на визуал


<Изображение удалено>
0
VyvotzorD
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 2,309
31.10.2016, 16:15 4
А что не так-то?
Вот кусок кода из main.c (в архиве взял):
Код
            if(p1==1){    /* set LED */
PORTB |= _BV(0);
}else{                          /* clear LED */
PORTB &= ~_BV(0);
}
И срабатывает этот код каждый раз когда:
Код
        if(rq->bRequest == CUSTOM_RQ_SIT_STATUS){
Причем p1 это:
Код
unsykned char   p1 = rq->wValue.bytes[0];
Так вот, если комп начнет посылать меге по USB пакеты, то на каждый пакет CUSTOM_RQ_SIT_STATUS будет срабатываеь этот код. И в зависимости от p1 будет либо гасить, либо зажигать светодиод. А прога твоя наверняка шлет целую кучу таких пакетов - вот светодиод мерцает.

И напряжение там 2.5В лишь потому, что там меиндр со скважностью 50% или близко к этому. Потому вольтметр выдает среднее напряжение.

Дело не в коде МК, и скорее всего не в железе. А в том какие USB пакеты летят от компа к девайсу.

Я б на твоем месте сначала сделал код, который будет тупо постоянно вертеть шаговиком или в нужном направлении мигать светодиодами. Чтобы работало наверняка. А уж потом стал бы прикручивать интерфейс. И не USB, а UART для начала - чтобы так сказать въехать. А уж потом USB. Но это лично мое мнение.
0
Kvomdoyk
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 4
31.10.2016, 22:28 5
ISR (TIMER0_OVF_vect)

{

PORTB=pwm1;

}

ISR (TIMER0_COMP_vect)

{

PORTB&=~(1<<PB1);

PORTB&=~(1<<PB2);

PORTB&=~(1<<PB3);

PORTB&=~(1<<PB4);

}

ISR (TIMER2_OVF_vect)

{

if (step>0) {

holn--;

if (holn==0) {

holn=hold;

if (kuda==0) posn++; else posn--;

if (posn==5) posn=1;

if (posn==0) posn=4;

if (posn==1) pwm1=0b01010101;

if (posn==2) pwm1=0b01100110;

if (posn==3) pwm1=0b10101010;

if (posn==4) pwm1=0b10011001;

step--;

}

} else {

pwm1=0b00000000;

}

}
0
Kvomdoyk
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 4
31.10.2016, 22:34 6
https://avrlab.com/node/60
0
pitrpts
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
01.11.2016, 11:39 7
когда попробуешь поиграться с A4988 и ему подобными специализированными разношаговыми драйверами*, то будет больше задумок по применению их возможностей
https://www.youtube.com/watch?v=9-X9ZQuyQcg
*контрольные слова:
A4988 - 0,87 $ в сборе
A3967 - EasyDryver - 1,25$ в сборе
DRV8825 - 1,25$ в сборе
TB6600
различия в минимальном/максимальном рабочем напряжении и рабочем токе.
0
01.11.2016, 11:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2016, 11:39

Радиомодуль rfm12bp и Atmega16a
Здравствуйте! Стоит следующая задача: Связать 2 радиомодуля, организовав &quot;эхо-сигнал&quot;, т.е. один...

Проблема с прошивкой ATMEGA16a
Здравствуйте. Я новичок в теме AVR. Попробовал создать схему (таймер для вкл/выкл бойлера по...

Реквестирую программатор для ATMega16A-AU
Собственно говоря, беглый поиск по интернетам результатов не дал, что я расцениваю как отсутствие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru