roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 11:26

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




Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите разобраться с программатором пожалуйста!
СообщениеДобавлено: 02 ноя 2008, 20:43 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
А в чем заключаеца проблема? Интеренет есть, гугл есть, можно тупо найти нужный исходник или МОРЕ курсов по АВР где все разжевано как раз для тебя


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с программатором пожалуйста!
СообщениеДобавлено: 02 ноя 2008, 20:49 
Не в сети

Зарегистрирован: 20 окт 2005, 16:11
Сообщения: 432
Откуда: Вильнюс,Литва
прог. языки: Basic
almazkazan писал(а):
но я обязательно попробую! я клей токопроводящий купил вот - чтоб проводки приклеить к выводам от дисплея часов. а потом изучу (методом тыка), то как там сигменты высвечивать.

дерзай :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с программатором пожалуйста!
СообщениеДобавлено: 02 ноя 2008, 21:25 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2008, 17:47
Сообщения: 97
Откуда: казань, респ. Татарстан, россия
прог. языки: c++, c#, asm
Сергей писал(а):
А в чем заключаеца проблема? Интеренет есть, гугл есть, можно тупо найти нужный исходник или МОРЕ курсов по АВР где все разжевано как раз для тебя


я нашел примеры на ассемблере. хотелось бы на Си - попроще, без шимов, юартов и т.д. :)
еще нашел такой код на Си.

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

INTERRUPT(SIG_INTERRUPT0)
{PORTB^=0xFF;}

int main(void)
{DDRB=0xFF;
GIMSK=0x40;
MCUCR=0x02;
sei();
while(1);
}

но программа не компилируется- ругается на "GIMSK". еще она только для кнопки которая на ножке int0. а что делать если кнопок 5? в общем привидите пожалуйста пример кода: если на ножке 0 порта А нажали кнопку то на ножку 2 порта B подать 1. заранеее спасибо.

_________________
“Но мы же еще ​живы, чувак, это же круто…”


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с программатором пожалуйста!
СообщениеДобавлено: 02 ноя 2008, 23:19 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
almazkazan писал(а):
хотелось бы на Си - попроще, без шимов, юартов и т.д. :)

Пожалуйста. Самое простое для AVR - мигание светодиодом в WinAVR и PROTEUS с картинками-скриншотами http://avr123.nm.ru/04.htm
файлы в архиве приложены там же.

Добавлено спустя 4 минуты 49 секунд:
almazkazan писал(а):
что делать если кнопок 5 ?

В программе периодически опрашивать регистр PIN-порта к которому подключены кнопки и при изменении считать что с кнопкой что-то сделали
http://avr123.nm.ru/05.htm
Можно кнопочки подключить к разным резистоам и получить делитель напряжения на разное число и подключить на АЦП ( http://avr123.nm.ru/z11.htm ) - измерять напругу и вычислять какая кнопка нажата. Как прочитать какая кнопка нажата в задача о таймере - http://avr123.nm.ru/06.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с программатором пожалуйста!
СообщениеДобавлено: 03 ноя 2008, 19:03 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2008, 17:47
Сообщения: 97
Откуда: казань, респ. Татарстан, россия
прог. языки: c++, c#, asm
avr123.nm.ru писал(а):
almazkazan писал(а):
что делать если кнопок 5 ?

В программе периодически опрашивать регистр PIN-порта к которому подключены кнопки и при изменении считать что с кнопкой что-то сделали


Спасибо! получилось :ROFL: сделал вот так:
PORTA = 0b11111111;
PORTD=0b00000000;
while(1)
{if(PINA==0b11111110) PORTD=0b00001000; //если кнопку нажали - горит 4ый светодиод
else PORTD=0b00000000; // если не нажали - ниче не горит
}

Добавлено спустя 8 минут 54 секунды:
Re: avrisp2 - Помогите разобраться с программатором
а как это делается в виде прерывания?

а то тут ведь пин порт считывается в начале цикла только, а если кнопка будет нажата когда будет выполнятся середина цикла то ничего не произойдет. произойдет только когда цикл начнется сначала. а это не есть гуд, в случае если в беконечном цикле очень большая программа....

_________________
“Но мы же еще ​живы, чувак, это же круто…”


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 04 ноя 2008, 14:00 
Не в сети
Аватара пользователя

Зарегистрирован: 14 дек 2007, 21:19
Сообщения: 59
Откуда: Курган
прог. языки: С++
http://winavr.scienceprog.com/avr-gcc-tutorial/ - Гайд по программированию на AVR-GCC(он и есть в WinAVR)

Можно повторить вопрос? Как я понял надо сделать бегущий огонёк?

Создай массив например :
Код:
#include <avr/io.h> //Заголовочный файл ввода-вывода
#include <util/delay.h> // А это файлик для формирования задержек
#define F_CPU 8000000UL //Сообщаем какая тактовая частота будет, в Герцах

int main (void){                   //главная функция, с которой начинает работать программа
unsigned int leds[9] = {        //создаём массив со значениями куда подавать единичку))))
0b00000000,                       //начинаем с нуля, иначе первый светодиод при переполнении счётчика гореть не будет
0b00000001,                      //Первый светодиод 1, остальные 0
0b00000010,                      //Второй светодиод 1, остальные 0, и т.д.
0b00000100,
0b00001000,
0b00010000,
0b00100000,
0b01000000,
0b10000000};

DDRD = 0xff;                        // конфигурируем пины порта D как выходы

unsigned short i;               // Переменная - счётчик, будем указывать в качестве индекса массива
// Теперь самая тема:

for(i=0; i  < 9;  i++){        //Тут я намутил)))) т.е. перечисление у нас будет с 0 до 8, т.е. все 8 элементов будут перечислены

PORTD = leds[i];              //теперь за каждый оборот цикла будет мигать следующий светодиод
_delay_ms(250);               // Задержка 250 милисекунд
if(i==8){                             /*Когда счётчик 8 равен. тогда обнуляем его, при этом по неизвестной мне причине первый элемент массива - точнее 0b00000000,   пропускается */
i=0;
}
}
}

//Нана оставить пустую строчку чтобы наш компилятор не ругался типа end of file плохой и всё такое

Проверил в протеусе - усё работает. Во вложении весь проект с симуляцией;) Всё сделано под Mega8 с частотой 8 МГц, и программатор stk200. Если вопросы будут - сразу пиши. Гуру тоже пишите, знаю что-что неправильно хоть и работает, но что - нинаю))) Выкрутился за счёт нуля на всех ножек, иначе первый светодиод бы не горел. Можно сделать чтобы в обратку сё бежало, но это уже другая история;)

И ещё - не бросай WinAVR))) А то как-то мало народу прогает на нём(( Нескем будет поделиться или спросить)))

Добавлено спустя 24 минуты 5 секунд:
Сорри, прочитал что тебе конкретно надо, можно сделать просто, есть такая функция: bit_is_clear(PINB, 0) Можно как сделать: сконфигурировать порт B как вход: DDRB = 0x00; вроде так)) и потом if(bit_is_clear(PINB,0)) bit_is_clear(PINB,0) - еси кнопку нажали на на 0 пине порта B, и есть ещё фича loop_until_bit_is_set(PIND, 0); - тока я не понял всё ещё нафиг она нужна, это вроде пока кнопка зажата
вот прогруля))) опять же на WinAVR:

Код:
#include <avr/io.h>

int main(void){
DDRD = 0xff;
DDRB = 0x00;
unsigned short i = 0;
while(1){
if(bit_is_clear(PINB,0){
switch (i){
case 0: PORTD = 0b01010101; i=1;
case 1: PORTD = 0b10000001; i=2;
.....................дальше варианты любые можна делать....................
case 4: PORTD = 0b00001010; break;
}
}
}
}


Используй тег CODE! <Сергей>

собсна вот)) Опять от ошибок не застраховано - вопросы - пиши, гуру - исправьте=)

Добавлено спустя 1 час 4 минуты 12 секунд:
Хорошо, простите :oops:


Вложения:
Комментарий к файлу: Proteus & WinAVR
Simple.zip [46.63 КиБ]
Скачиваний: 22

_________________
Не судите строго, я начинающий, но у меня всё получится!!!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 05 ноя 2008, 17:48 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2008, 17:47
Сообщения: 97
Откуда: казань, респ. Татарстан, россия
прог. языки: c++, c#, asm
Granit спасибо большое! особенно за ссылку по WinAVR :)

_________________
“Но мы же еще ​живы, чувак, это же круто…”


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 05 ноя 2008, 21:52 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2008, 17:47
Сообщения: 97
Откуда: казань, респ. Татарстан, россия
прог. языки: c++, c#, asm
светодиоды у меня помигали, по-разному помигали и бегущий огонек побегал и кнопки понял как подключать/обрабатывать. :) весело это всё, блин. а что дальше посоветуете попробывать сделать новичку?

может как нибудь попробывать выводить по-простому звук (голос например) через AVRку? как это вообще делается?

просьба ссылки на ШИМ не кидать :) читал теорию. но в теории нету схемы подсоединения, то как программируется, может готовые библиотеки есть?
спасибо всем заранее

_________________
“Но мы же еще ​живы, чувак, это же круто…”


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 07 ноя 2008, 09:09 
Не в сети
Аватара пользователя

Зарегистрирован: 14 дек 2007, 21:19
Сообщения: 59
Откуда: Курган
прог. языки: С++
Для звука через AVR насколько мне известно тебе тоже надо будет ШИМ выводить. Кстати, я вот думаю от часов Монтана пикалка подойдёт?))

_________________
Не судите строго, я начинающий, но у меня всё получится!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 08 ноя 2008, 20:24 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2008, 17:47
Сообщения: 97
Откуда: казань, респ. Татарстан, россия
прог. языки: c++, c#, asm
блин или от сотового :) люди, кто знает, подскажите новичкам!

как динамик соединять и как на Си это обрабатывается, мы хотим чтоб этот динамик звуки издавал, или, что еще лучше, чтоб что то говорил. (тогда как этот звук разместить в АВР, или память надо соединять чтоли... :roll: как это делается вобщем?)

_________________
“Но мы же еще ​живы, чувак, это же круто…”


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 08 ноя 2008, 20:32 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
almazkazan писал(а):
как динамик соединять и как на Си это обрабатывается, мы хотим чтоб этот динамик звуки издавал, или, что еще лучше, чтоб что то говорил. (тогда как этот звук разместить в АВР, или память надо соединять чтоли... :roll: как это делается вобщем?)


Цифровой диктофон - АпНоут AVR335 ATMEL - есть там http://avr123.nm.ru/07.htm - в низу странички. C исправленым кодом и на русском - задача 7 у меня в курсе - http://avr123.nm.ru/z7.htm

Можно в PROTEUS выводить звук из симулируемого устройства на аудиокарту ПК !

Генерация ШИМ - http://avr123.nm.ru/z8.htm

Фильтрация усиление и масштабирование сигналов - http://avr123.nm.ru/z09b.htm


Последний раз редактировалось avr123.nm.ru 16 июн 2009, 20:22, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 16 июн 2009, 20:15 
Не в сети

Зарегистрирован: 16 июн 2009, 20:10
Сообщения: 3
Откуда: МОСКВА
Здравствуйте!
Помогите советом. Недавно купил программатор AVRISP2 и к нему микроконтроллер Atmega8-16PU, установил AWR studio4, драйвера, написал программу,... подключил контроллер к программатору. Комп видит программатор но связи с МК нет. При нажатии кнопок Erase или Program или любой попытке связаться с контроллером загорается красный светодиод на программаторе. На экране выводится что то вроде NO TARGET POWER, связь с МК естественно невозможна. Подскажите как это можно исправить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 16 июн 2009, 20:25 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Фраза типа - "нет питания программируемого устройства". Для успешного пограммирования AVR нужно выполнить несколько условий описаных на страничке учебного курса по AVR - "Всё о прошивке AVR" - адрес

Советую начинать учится программированию микроконтроллеров на симуляторах типа VMLAB или лучше PROTEUS - http://proteus123.narod.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 16 июн 2009, 23:03 
Не в сети

Зарегистрирован: 16 июн 2009, 20:10
Сообщения: 3
Откуда: МОСКВА
Имеете ввиду установка fuse bits?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: avrisp2 - Помогите разобраться с программатором
СообщениеДобавлено: 16 июн 2009, 23:19 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
не только, но и они тоже. Там комплекс требований описан.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

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


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO