roboforum.ru

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


Помогите написать программу на МК атмега128.

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

Помогите написать программу на МК атмега128.

Сообщение Костя » 31 мар 2014, 17:51

Помогите пожалуйста написать программу на языке программирования С++ на у правление сервоприводом при нажатие кнопки, или подскажите как написать эту программу, мне надо что бы нажав первую кнопку сервопривод про крутился на 10 градусов при нажатие на вторую кнопу он про крутился на 20 градусов и так далее, Схему я скинул в программе Proteus. У меня большая просьба помогите мне. Мне очень сильно нужна ваша помощь помогите пожалуйста!!!
Вложения
схема1.rar
В Proteus
(23.06 КиБ) Скачиваний: 0
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение Madf » 31 мар 2014, 20:21

опять горящий проект по учебе..)
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Помогите написать программу на МК атмега128.

Сообщение Костя » 31 мар 2014, 20:30

скажем просто я студент с меня много не возьмешь и не из богатой семьи я так что так сразу ответить не магу=( хотелось бы что бы мне помогли хотя бы простеньким примером что бы я понял примерно как она пишется, я много не прощу. Тут как вы сами захотите, но нормальных денег я вам дать не могу!!!Так что сами решайте как поступить вам помочь мне или нет!!!

Добавлено спустя 7 минут:
Madf ты угадал вот только мне дали то чего я не проходил, а сам пытался разобраться и сейчас пытаюсь но не получается, просто похожие программы написаны во FlowCode а компиляцию в с++ с него я понять не могу, по этому и прошу о помощи в небольшом хотя бы примере как на сервопривод пишется программа для атмеге128. Заставить я вас не могу но может кто захочет помочь мне по доброте душевной, правда я не надеюсь на многое ну по пробовать стоило. Если кто согласится большое вам спасибо=)!!! :)
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение avr123.nm.ru » 31 мар 2014, 21:12

Костя писал(а):помогите мне.
посмотрите пример управления servo - довольно просто - http://www.proavr.narod.ru/z13.htm :D

Изначально серва как установлена - по центру?
А при отпускании кнопок что происходит?

Может он-лайн урок тут забацать? :D
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Помогите написать программу на МК атмега128.

Сообщение Костя » 31 мар 2014, 21:37

За примеры большое спасибо попробую разобраться если еще что то будет или что то случайно найдете напишите сюда пожалуйста.
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение Костя » 02 апр 2014, 14:44

Народ больше нечего нет случаем???
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение avr123.nm.ru » 02 апр 2014, 15:32

Вы сами то что сделали? Чего вам больше? :D
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Помогите написать программу на МК атмега128.

Сообщение Костя » 10 апр 2014, 15:40

Вот что я сделал, я заставил сервопривод крутиться на своей схеме но не могу понять как мне это заставить делать от кнопок на AVR GCC написана программа.
#include <avr/io.h>
#include <util/delay.h>

//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i<10;i++)
{
_delay_loop_2(0);
_delay_loop_2(0);
_delay_loop_2(0);

}

}
void main()
{
//Configure TIMER1
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11); //NON Inverted PWM
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10); //PRESCALER=64 MODE 14(FAST PWM)

ICR1=4999; //fPWM=50Hz (Period = 20ms Standard).

DDRB|=(1<<PB4)|(1<<PB5); //PWM Pins as Out
DDRB|=(1>>PB4)|(1>>PB5);

while(1)
{

OCR1A=194;
Wait();
OCR1A=201;
Wait();
OCR1A=208;
Wait();
OCR1A=215;
Wait();
OCR1A=222;
Wait();
OCR1A=229;
Wait();
OCR1A=236;
Wait();
OCR1A=245;
Wait();
OCR1A=252 ;
Wait();

OCR1A=252 ;
Wait();
OCR1A=245;
Wait();
OCR1A=236;
Wait();
OCR1A=229;
Wait();
OCR1A=222;
Wait();
OCR1A=215;
Wait();
OCR1A=208;
Wait();
OCR1A=201;
Wait();
OCR1A=194;
Wait();



}
}
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение avr123.nm.ru » 10 апр 2014, 16:41

Костя писал(а):Вот что я сделал, я заставил сервопривод крутиться на своей схеме но не могу понять как мне это заставить делать от кнопок
Отлично!

вот так попробуйте - https://www.google.ru/search?q=%D0%BA%D ... 3&ie=UTF-8
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Помогите написать программу на МК атмега128.

Сообщение Костя » 12 апр 2014, 16:56

спасибо попробую

Добавлено спустя 1 час 28 минут 3 секунды:
#include <avr/io.h>
#include <util/delay.h>

//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i<10;i++)
{
_delay_loop_2(0);
_delay_loop_2(0);
_delay_loop_2(0);

}

}
void main()
{
//Configure TIMER1
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11); //NON Inverted PWM
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10); //PRESCALER=64 MODE 14(FAST PWM)

ICR1=4999; //fPWM=50Hz (Period = 20ms Standard).

DDRB|=(1<<PB4)|(1<<PB5); //PWM Pins as Out
DDRB|=(1>>PB4)|(1>>PB5);
DDRF = 0x00;

while(1)
{

if (bit_is_set(PIND,0)) {
if (bit_is_clear(PIND,1)){
OCR1A=194;
Wait();
// Ñäåëàòü ÷òî-íèáóäü êîãäà áèò 0 ïîðòà Â ðàâåíî "1", à áèò 1 ðàâåí "0".
}
}
if (bit_is_set(PIND,1)) {
if (bit_is_clear(PIND,2)){
OCR1A=201;
Wait();
}
}
if (bit_is_set(PIND,2)) {
if (bit_is_clear(PIND,3)){
OCR1A=208;
Wait();
}
}
if (bit_is_set(PIND,3)) {
if (bit_is_clear(PIND,4)){
OCR1A=215;
Wait();
}
}
if (bit_is_set(PIND,4)) {
if (bit_is_clear(PIND,5)){
OCR1A=222;
Wait();
}
}
if (bit_is_set(PIND,5)) {
if (bit_is_clear(PIND,6)){
OCR1A=229;
Wait();
}
}
if (bit_is_set(PIND,6)) {
if (bit_is_clear(PIND,7)){
OCR1A=236;
Wait();
}
}
}
}

Добавлено спустя 59 секунд:
всем спс щас еще лсд икран подключу так что всем большое спасибо за потсказки

Добавлено спустя 22 минуты 44 секунды:
скинь те плиз сылку где можно посматрерть насчет ЛСД экрана как мне сделать чтобы показывались номер этажа!!!Пожалуйста если я сам найду до этого то сразу отпешусь
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение avr123.nm.ru » 12 апр 2014, 23:22

попробуйте изменить запрос в гугл
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Помогите написать программу на МК атмега128.

Сообщение Костя » 14 апр 2014, 17:28

пробывал не помогает=( я понимаю что вам надоел=( у меня еще одна проблема в протеусе серво привод останавливается а на Микроконтролере он крутится постаянно только когда кнопку нажмеш он повернется на определенное количество градусов и опять начинает крутится в обратную сторону что можно сделать программа написанна на AVR Studio GCC, простно намекните или просто напишите команду которой можно воспользоваться=)
Костя
 
Сообщения: 7
Зарегистрирован: 31 мар 2014, 16:48

Re: Помогите написать программу на МК атмега128.

Сообщение avr123.nm.ru » 14 апр 2014, 17:40

Надо видеть код программы. Лучше выложите код в тегах КОД и приложите архив с прожектом.

и ЗАКЛИНАЮ ВАС зырьте в гугл - https://www.google.ru/search?q=winavr+l ... 3&ie=UTF-8
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8


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

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

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