Форум "РАДИОЛЮБИТЕЛЬ"

Добро пожаловать на наш форум
Текущее время: 05 дек 2019, 21:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 05 авг 2016, 06:25 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
купил программатор 51avr usb isp asp atmega programmer(программатор внутрисхемный,wze).
операционная система линукс убанту 16.06(обновил,была 14.04).
в программу geany скопировал текст программы с http://ph0en1x.net/news/80-simple-progr ... guage.html
текст написан на си
сохранил в этой же программе с расширенем .с
далее пытался скомпилировать в расширение .о (просто там так написано сначала в .с потом скомпилировать в .о)
я никак не разберусь,при компиляции жалуется,что #include <avr/io.h> // Подключим файл io.h,в этом фрагменте,что-то не так
там конечно все обьяснено,но ....
купил для программатора микроконтроллер atmega8 c 28 ножками
в линуксе с помощью какой программы прошивать?
допустим есть у меня файл с расширением .hex
использовал http://ph0en1x.net/news/67-avr-microcon ... and-c.html
:roll:


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 06 авг 2016, 17:34 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
получил наконец таки файл с расширением .hex
получил с помощью http://ph0en1x.net/news/79-avr-asm-firs ... oller.html
до этого пытался получить файл.hex,по тексту программы на си,не получилось,а на текст с ассемблером получилось.
осталось запрограммировать


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 06 авг 2016, 21:58 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
все получилосьИзображение


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 07 авг 2016, 21:07 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
Изображение
Изображение


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 16 авг 2016, 20:33 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
В линуксе готовую программу корректировал в Geany
В виндовсе не знаю в какой программе корректировать,и,чтобы программа становилась с расширением.hex
Зато прошил свой USBasp программатор другим таким же USBasp программатором
В интернете есть видео,как прошивать USBasp программатор(просто он изначально продается с старой прошивкой)
В том же видео для прошивки используется программа Khazama,хорошая вещь,с помощью нее прошил оба программатора(все из того же видео)
И главное сначала ,то прошивает,то нет,по-моему мешала Ccleaner(ей почистил,а потом ее удалил),за одно удалились все сайты,по этому и не выложил ссылки на видео
Все делал в виндовсе
Диск накрылся на котором линукс,или линукс после моих махинаций в терминале(надо смотреть,постоянно проверяет файловую систему,кстати не подскажете,в чем дело?)
Кстати,свой файл сохраненный на диске с расширением.hex тоже с посмощью Khazama успешно залил на контроллер(теперь как и в линуксе мигают огоньки на макетной плате).


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 10 окт 2016, 16:46 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
Для линукса Убанту 14.04

Наконец-то корректирую программу с сайта http://ph0en1x.net/news/80-simple-progr ... guage.html
в Geany .Сначала настроил сборку в Geany(сборка для си) http://ph0en1x.net/news/76-howto-config ... mcu-option .
У меня почему-то переводит только с расширения .с на расширение .о ,но не переводит c расширения .о в .hex (но зато прошивает).Сначала выбираю компилировать.Чтобы переводил расширение .о в .hex ,мне приходится вместо fff название вашей программы в терминале прописывать avr-objcopy -j .text -j .data -O ihex fff.o fff.hex .Как это сделать можно узнать здесь http://ph0en1x.net/news/80-simple-progr ... guage.html. Там в конце есть описание как .о превратить в .hex. После в верху выбираю сборка-выполнить и прошивается микроконтроллер. Перевод в терминале с расширения .о в .hex ,нужно проводить каждый раз перед прошивкой. Сохраняю файл программы на си, с расширением .с (fff.c)в Geany.
Кстати купил контроллер атмега 8 а ,он дешевле чем атмега 8 ,но необходимо для прошивания поставить перемычку на JP3 на usbasp программаторе


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 30 окт 2019, 15:53 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
#define F_CPU 1000000UL // укажем компилятору частоту ЦПУ
#include <avr/io.h> // Подключим файл io.h
#include <util/delay.h> // Подключим файл delay.h

int main(void) { // начало программы
// -- установим параметры --
int delay_ms_1 = 100; // задержка для светодиода
int delay_ms_2 = 300; // задержка между светодиодами

// -- настроим пины порта --
DDRD |= (1 << PD0); // пин PD0 порта DDRD на вывод
DDRD |= (1 << PD1);
DDRB =0xff;
PORTB= 0b00000001; // пин PD1 порта DDRD на вывод

// -- основной цикл программы --
while (1)
{
if (!(PINB&0b00000001))
{ // реализация бесконечного цикла
PORTD |= (1 << PD0); // на пине PD0 высокий уровень
PORTD |= (1 << PD1); // на пине PD0 высокий уровень
}


{
if (!(PINB&0b00000001))
{
PORTD=0b0000000;
}
}
}
}


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 30 окт 2019, 16:44 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
Изображение
В программе протеус
программа с кнопкой.
Если нажать на кнопку светодиоды засветятся, если еще раз нажать,то потухнут.
HEX файл не прикрепляется.Создать можно с помощью прошраммы Geany,ее можно настроить написано в предыдущих постах на одноименном сайте.


Последний раз редактировалось Руслан АВЦМ 30 окт 2019, 17:35, всего редактировалось 1 раз.

Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 30 окт 2019, 17:05 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
Кстати прикупил ардуино нано версия 3 и платформу 4 колесную собрал с сонаром hc sr 04,вроде обьезжает препятствия,да не совсем правильно:)
использовал сайт http://psenyukov.ru/ультрозвуковой-даль ... ,платформа с серводвигателем передних колес
фото:
Изображение
Изображение
Изображение
Изображение

серводвигатель подключен к 11 выводу arduino nano,колеса постоянно подключены к батарейкам напрямую.Вывод 10 ни куда не подключал.


Последний раз редактировалось Руслан АВЦМ 01 ноя 2019, 08:24, всего редактировалось 2 раз(а).

Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: надо научиться прогаммировать микроконтроллеры
СообщениеДобавлено: 30 окт 2019, 17:14 
Не в сети
Аватара пользователя

Зарегистрирован: 29 ноя 2014, 21:26
Сообщений: 210
Очков репутации: 12

Добавить очки репутацииУменьшить очки репутации
#include <Servo.h>


#include <Servo.h>

#define coef 10 //(коэффициент соответствия 10 градусов на 1см)

#define dead_zone 16
#define max_value 26
#define servoPin 11
#define ServoPin 10

#define Trig 9
#define Echo 8
#define ledPin 12
#define ledPin 7
Servo myservo;
Servo myServo;

void setup()
{
pinMode(Trig, OUTPUT); //инициируем как выход
pinMode(Echo, INPUT); //инициируем как вход
pinMode(ledPin , OUTPUT);
pinMode(ledPin , OUTPUT);
myservo.attach(ServoPin);
myservo.attach(servoPin);

// myservo.write(0);

myservo.write(0);
}



unsigned int impulseTime=0;
unsigned int distance_sm=0;


void loop()
{
digitalWrite(Trig, HIGH); /* Подаем импульс на вход trig дальномера */
delayMicroseconds(10); // равный 10 микросекундам
digitalWrite(Trig, LOW); // Отключаем импульс
impulseTime = pulseIn(Echo, HIGH); // Замеряем длину импульса
distance_sm = impulseTime/58; // Пересчитываем в сантиметры

if (distance_sm >= dead_zone && distance_sm <= max_value)
{

myservo.write(coef * (distance_sm - dead_zone));

}
else if (distance_sm < dead_zone)// если дистанция менее 4 см, серва в положении ноль градусов
{

myservo.write(90);
}

else
{

myservo.write(120);
}


//delay(1000); /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла (cycle period). Рекомендованный период между импульсами должен быть не менее 50 мс. */

} //для запуска второго кода скобку убрать
/*if (distance_sm >= dead_zone && distance_sm <= max_value)
{

myservo.write(coef * (distance_sm - dead_zone));
}
else if (distance_sm < dead_zone)// если дистанция менее 4 см, серва в положении ноль градусов
{
myservo.write(90);
}
else
{
myservo.write(160);
}
//delay(1000); /* ждем 0.1 секунды, Следующий импульс может
}
*/


Информация о сообщении Вынести предупреждение
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 4 часа



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

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


Быстрые действия:
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB