Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

signum писал(а):А как считать?

Если для gcc, то ориентироваться можно отталкиваясь вот отсюда (ближе к концу страницы).
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
Eprinter
Опытный кот
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Eprinter »

Eprinter писал(а):В общем понятно - надо покупать в другом месте ещё один чип и проверять...

Плюнул на ошибку при прошивке еепрома и реализовал-таки задуманный алгоритм, и о чудо - всё работает!
Значение запоминается при выкл-вкл питания, программатор его читает, так что МК не бракованный.
Изображение

В чём же тогда дело? Почему еепром в мега16 программируется по ISP, а в тини13 не хочет?
Кстати, при прошивке ячейки очищаются, а новое значение не пишется.

UPD пока сделал дёшево и сердито:
Изображение
Вложения
eeprom22.gif
(2.01 КБ) 587 скачиваний
eeprom.gif
(5.52 КБ) 748 скачиваний
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Помогите пожалуйста написать часть программы которая будет ждать пока не будет нажата кнопка с удержанием в 2сек после нажатия чтобы запустила основную программу а так же и выключение программы нажатием с удержанием в 2сек. Я только начинаю учиться писать программы))) Мигалки я уже усвоил вот хочу кнопочки усвоить .
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

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

if(button)
{
flag= 0;
counter= 0;
}
else
{
if(++counter > N) flag= 1;
}

Пишем присведенное в обработчике прерывания от таймера(т.е. через определенные промежутки времени). Если кнопка не нажата, то переменная button имеет значение 1. Счетчик все время обнуляется, флаг flag обнуляется и не дает запуститься основной программе(вне обработчика которая). При нажатии кнопки начинается отсчет по counter'у. При достижении определенного значения N(подобрать в зависимости от частоты входа в обработчик) флаг устанавливается, по нему стартует основная программа. То же самое и на останов программы.
Docendo discimus
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Спасибо большое но у меня ошибка undefined symbol 'button' и undefined symbol 'counter' работаю в CodeVisionAvr. Спасибо за ответ !! Микроконтроллер Atmega8.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

Так ясен пень! Вы жеж требовали кусок программы - получите. Естественно дружище, все должно быть прописано красиво и аккуратно. Оформляйте, объявляйте.
Docendo discimus
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Извините меня пожалуйста за тупость.Не могли бы вы написать простенькую программу на включение и выключение светодиода чтобы я мог понять принцип работы данного кода.Жаль что я только учусь и не умею все что умеете вы(((((( Ребят ну помогите кто нибудь.
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Уважаемый yron, мы Вам с удовольствием поможем, но мы не знаем под какой МК Вы хотите писать программу.
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Atmega8 Спасибо
Аватара пользователя
Eprinter
Опытный кот
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Eprinter »

yron писал(а):Извините меня пожалуйста за тупость.Не могли бы вы написать простенькую программу на включение и выключение светодиода чтобы я мог понять принцип работы данного кода.Жаль что я только учусь и не умею все что умеете вы(((((( Ребят ну помогите кто нибудь.

Если в самом деле хочешь разобраться, а не только закрыть сессию по-быстрому :wink: то начни с книги Белов А.В. Создаём устройства на микроконтроллерах (лежит например тут), или почти такая же того же автора Самоучитель разработчика устройств на микроконтроллерах AVR.
В обеих на примере ATtiny2313 по шагам расписаны все основные приёмы, на ассемблере и на Си, начинается как раз со светодиода и кнопки. Рекомендую. Потом под свою ATmega8 переделаешь код, это несложно.

От написанной кем-то программы пользы будет значительно меньше, ИМХО - чтобы понять чужой код, нужно иметь хоть немного практики.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Спасибо. Я буду все таки базироваться на AVR . Мне программирование дается с трудом и начал я что то понимать только после чего поработал с мигалкой то есть на практике я легче усваиваю информацию. Ведь для того чтобы что то запомнить это нужно понять как это все работает . Может все таки вам будет не сложно написать эту мелкую программку ? А если сложно то и на том ОГРОМНОЕ СПАСИБО тем кто не пожалел своего времени чтобы мне ответить. Примеры там хорошие но вылетают ошибки типа undefined symbol CLKPR .
Как сделать чтобы после нажатия на кнопку PORTB.0=0 через 5 секунд PORTB.1=1 через 10 секунд проверяет датчик PIND.1 и если на нем 1 то все начинается заново отсчета 5 секунд. А если PIND.1=0 то PORTB.2=1 и пока PIND.1=0 программа удерживает PORTB.1=1 PORTB.2=1
Всю ночь мозг е... и ни фига не получилось

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

#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0xFF;

PORTD=0x7F;
DDRD=0x00;

ACSR=0x80;

while (1)
  {
      while(PIND.0==1) {}
      delay_us(400);
      if (PINB.0==1)
         { PORTB.0=0;
           PORTB.1=0; }
      else
         { PORTB.0=1;
           delay_ms(5000);
           PORTB.1=1;
           delay_ms(10000);
           if(PIND.1==0)
           { PORTB.2=1; }
           else
           { PORTB.0=0; }
           }
      while (PIND.0==0) {}
      delay_us(400); 
         
  };

}
Аватара пользователя
Eprinter
Опытный кот
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Eprinter »

yron писал(а):Я буду все таки базироваться на AVR

Так все они AVR - что тиньки, что меги :))

yron писал(а):Примеры там хорошие но вылетают ошибки типа undefined symbol CLKPR .

Ну так правильно, примеры там под ATtiny2313, а ты их пытаешься напрямую для ATmega8 использовать. Имена некоторых регистров разные, вот и ошибка. Нужно для начала сделать под предлагаемый МК, а когда придёт понимание, переложить код на другой контроллер будет намного проще.

yron писал(а):Как сделать чтобы после нажатия на кнопку PORTB.0=0 через 5 секунд PORTB.1=1 через 10 секунд проверяет датчик PIND.1 и если на нем 1 то все начинается заново отсчета 5 секунд. А если PIND.1=0 то PORTB.2=1 и пока PIND.1=0 программа удерживает PORTB.1=1 PORTB.2=1

А теперь, если всё ещё нужна помощь, разрисуй вот эту свою фразу на листике в виде разветвлённого алгоритма и выложи, лично я не понял ничегошеньки, что из чего следует :dont_know:
Последний раз редактировалось Eprinter Сб июн 16, 2012 15:05:59, всего редактировалось 1 раз.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Но у меня только Atmega8 есть. Алгоритм такой:
1 Нажимаем кнопочку включается программа на 1 выходе лог.1
2 Через 5 сек на 2 выходе тоже появляется лог.1
3 через 10 сек идет проверка датчика если на нем лог.0 то на 3 выходе лог.1 если нет то все начинается сначала пункта 2 то есть с отсчета 5 сек.
4 Той же кнопочкой выключаем программу .
По другому пока что не знаю как объяснить .
Искал везде информацию о флаге и прерываниях .О прерываниях я информацию нашел а вот о флаге ничего. Прочитал ту книгу там тоже нету.
Можно с вами как то связываться например по скайпу потому что ждать весь день ответ тоже не приемлемо.
Аватара пользователя
Eprinter
Опытный кот
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Eprinter »

К сожалению, я весь день не у компа, только рано утром и вечером (учти разницу в часовых поясах).
Хорошо, сейчас есть чутка времени, попробую сообразить.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Спасибо. Трудно когда некому подсказать .
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ChipKiller »

yron писал(а):Трудно когда некому подсказать .
когда не умеешь задать вопрос, то и ответа ждать нечего.... у Вашего ТЗ очень большая "недосказанность" .......
yron
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение yron »

Извините конечно но вы уже опытные. А я что я только учусь. У меня огромное желание уметь программировать а кроме вас меня никто не научит мне не на кого надеяться кроме вас .
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ChipKiller »

.... У меня огромное желание уметь программировать а кроме вас меня никто не научит мне не на кого надеяться .
если есть желание (а литературы по AVR сейчас хоть отбавляй), то обязательно научитесь. Научить этому невозможно.
PS. Грамотно сформулировать вопрос - это почти полдела сделать, так что начните с этого ......
Аватара пользователя
Eprinter
Опытный кот
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Eprinter »

yron, ответил в личку.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

yronДа без тех задания сложно, а без схемы еще сложнее

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

while(PIND.0==1) {}//Тупим в цикле пока кнопка 1 не нажата
      delay_us(400);//Тут пауза
      if (PINB.0==1)//Если на выходе 0 порта Б лог. один то <<--уверены?
         { PORTB.0=0; //выключаем выход 0 порта Б!!!
           PORTB.1=0; }//выключаем выход 1 порта Б Зачем??
 

Короче проверил вашу конструкцию в протеусе, так и не понял как должно ваше устройство работать.
вроде загораются три огонька в зависимости от клавиши 1(Pind0) и датчика 2(Pind1)

нет выключения третьей ноги, что она так всегда должна в высоком находиться?

можно вашу конструкцию сделать на команде switch
три выхода и два входа это пять бит.Получается одна переменная типа char.
Последний раз редактировалось vitalik_1984 Сб июн 16, 2012 18:50:07, всего редактировалось 1 раз.
В поисках истины человек развивается.
Ответить

Вернуться в «Разные вопросы по МК»