ПОМОГИТЕ собрать контроллер на MEGE8

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

А лучше всего shell воспользуйся отладчиком быстрее будет и полезней.
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

Каким например?
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

Если не трудно, помогите написать прогу. Так как в рабочей проге мне будет проще разобраться что и как.
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

VMLAB например. Открываешь ихние примеры (в папке AVR_demo), компилируешь(F9) и разбираешься в пошаговом режиме(F7), наблюдая что происходит с регистрами, переферией и т.д. Мне лично очень это помогло...
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

Конечно спасибо за совет ,но мне бы помогла написаная программа где ясно что и как работает!Я даже не нашёл описание как запрограммировать ацп .
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

В сети книг валом
Аватара пользователя
Sergey.67
Родился
Сообщения: 3
Зарегистрирован: Пт ноя 23, 2007 00:29:11
Откуда: Моск. обл. г.Подольск

Сообщение Sergey.67 »

СПАСИБО за советы!!!
НО, хотелось бы сделать регулятор переменным резистором. А программирование с АЦП я еще не освоил.
Может у кого есть подобного типа схема и исходник?
Заранее спасибо!!!

Если ни когда не занимались программированием то рекомендую
компилятор BASCOM AVR, там куча всяких примеров - как настраивать порты, работа с АЦП, с прерываниями и многое другое, очень быстро можно самому научится программировать контроллеры АВР.
А просить что-бы добрый дядя за Вас написал программу, навряд-ли кто нибудь будет этим заниматься.
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

схема мигалки!
Вложения
12.JPG
(47.72 КБ) 551 скачивание
Аватара пользователя
Danny_Kornev
Родился
Сообщения: 9
Зарегистрирован: Вс окт 21, 2007 01:19:15
Откуда: Севастополь

Сообщение Danny_Kornev »

Рекомендую в вышеприведенной схеме диоды перевернуть катодами на землю - так больше вероятность, что они светиться станут :)
Shells, я недавно нашел книжку Вольфганга Трамперта "Измерение и управление при помощи микроконтроллеров AVR". Так вот, в этой книженции рассматривается работа АЦП авр-ок с подробным описанием всех ацп-шных регистров и настройкой оных перед началом работы. Более того, там даже приведен код программы на асме, по которой можно понять как, чего и куда. Вот на нее сцылочка (точнее, не именно на нее, а на страничку со всякими книженциями, сама ссылка на книгу находится в самом низу, предпоследняя): http://radiodvd.mylivepage.ru/file/71_% ... 0%B8%D0%B5
Удачи!
Дураком может быть каждый, но злоупотреблять этим не надо.
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

Спасибо ! Я вот только не пойму как задержку прописать? :oops:
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

shells писал(а):Спасибо ! Я вот только не пойму как задержку прописать? :oops:


В CVAVR вот так :

Код: Выделить всё

delay_ms(число сколько мС нужна пауза - от 1 до 65535); 
// т.е. до 65 секунд одной строкой

delay_us(число сколько микро секунд нужна пауза );
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Barni
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср дек 06, 2006 02:34:58

Сообщение Barni »

Только вначале не забудь добавить
#include <delay>
Аватара пользователя
Danny_Kornev
Родился
Сообщения: 9
Зарегистрирован: Вс окт 21, 2007 01:19:15
Откуда: Севастополь

Сообщение Danny_Kornev »

В AVR-Stuido на асме это будет выглядеть так (кстати, глянь в обучалке про мигающие светодиоды):

ldi R16,0 ;посылаем 0 в РОН R16
ldi R17,0 ;посылаем 0 в РОН R17

Loop1:dec R16 ;декрементируем R16
brne Loop1 ;branch not equal - ветвиться, если не равно (сравнение с нулем)
dec R17 ;те же операции с РОН R17
brne Loop1

Вот такой нехитрый ход. Впрочем, можешь дать свое мыло, я кину тебе программку AVRDelayloop - прога, в которой просто прописываешь необходимую задержку (в количестве тактов или в секундах), и она тебе выдает готовый код на ассемблере.
Дураком может быть каждый, но злоупотреблять этим не надо.
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

Спасибо,но я имел в виду как преобразованный результат АЦП вставить в зодержку.соответственно будет меняться скорость мигания светодиодов при регулировки резистора! или есть более актуальный способ менять скорость при помощи АЦП?
Аватара пользователя
Danny_Kornev
Родился
Сообщения: 9
Зарегистрирован: Вс окт 21, 2007 01:19:15
Откуда: Севастополь

Сообщение Danny_Kornev »

Ну можешь задать вначале какую-то конкретную задержку. Какую-нить придумаешь, я думаю. Затем читаешь из АЦП, сравниваешь с константой (соответствующей опеределенному уровню). Больше - увеличиваешь задержку, меньше - уменьшаешь. Или наоборот. Записываешь в какой-нить зарезервированный РОН значение АЦП. При следующем преобразовании сравниваешь результат уже с этим числом, записанным в резервированном РОН. Опять тот же цикл. И т.д. Это если я правильно понял твою мысль. Щас мозг барахлит - только-только из командировки. Надо будет код - пиши, чо-нить придумаем;) Пусть даже не совсем верный)))
ЗЫ: Ясен хрен, что следующее значение АЦП изменится при изменении положения движка переменного резистора
Дураком может быть каждый, но злоупотреблять этим не надо.
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

#include <avr>
#include <avr>
#include <avr>
#include <avr>

INTERRUPT(SIG_ADC)
{
unsigned int ADCdata;
ADCdata = ADCW ;//ADCW;

ADCSR = ADCSR | 0x40;

}
int main (void)
{

DDRD = 0xFF;
ADMUX = 0x40;
ADCSR = 0xCE;

void Pause(int ms)
{
PORTD = 0; //
_delay_loop_2(ms); //
}
start:

PORTD = 0x01; // 1
_delay_loop_2(ADCW * 70); //


PORTD = 0x02; // 2
_delay_loop_2(ADCW * 70); //


PORTD = 0x04; // 3
_delay_loop_2(ADCW * 70); //


PORTD = 0x08; // 4
_delay_loop_2(ADCW * 70); //


PORTD = 0x10; // 5
_delay_loop_2(ADCW * 70); //


PORTD = 0x20; // 6
_delay_loop_2(ADCW * 70); //


PORTD = 0x40; // 7
_delay_loop_2(ADCW * 70); //


PORTD = 0x80; // 8
_delay_loop_2(ADCW * 70); //


sei();


goto start;

}
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

У меня получилась вот такая рабочая программа , но я не смог сзделать чтобы бегущий огонь полностью останавлевался . Как прогу довести до ума ? :roll:
Аватара пользователя
Danny_Kornev
Родился
Сообщения: 9
Зарегистрирован: Вс окт 21, 2007 01:19:15
Откуда: Севастополь

Сообщение Danny_Kornev »

Поясни, что значит "полностью останавливался"? Не понимаю...
Дураком может быть каждый, но злоупотреблять этим не надо.
shells
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт янв 15, 2008 18:41:56

Сообщение shells »

это бесконечная задержка . то есть начинается с 0 до большой - бесконечной задержки . я что то не могу сделать большую задержку например 1 с - 10 с что бы всё нормально работало. короче говоря надо что бы скорость светодиодов была от 0 до максимума.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

определи новую функцию, и используй ее везде вместо ADCW:

Код: Выделить всё

uncigned int replace_ADCW(void){
   while(ADCW >= 1022);
   return ADCW;
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»