Функция должна объявляться до её первого вызова.
Если при объявлении написано void main1(void), то при вызове нужно писать main1(). Второе void при объявлении обозначает отсутствие параметров функции, значит, нужно при вызове не писать параметров в скобках.
Этот пост оказался полезен? Не поленись, нажми слева!
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Уже разобрался, спасибо, что откликнулись! А не подскажите еще как создать случайное число? На сколько я знаю в Codevision есть функция которая создаст случайное число?
MS24 писал(а):Уже разобрался, спасибо, что откликнулись! А не подскажите еще как создать случайное число? На сколько я знаю в Codevision есть функция которая создаст случайное число?
У меня есть кнопки, на которые зажигают определенный диод с частями тела человека, в режиме контроль должен зажечься случ диод, и нужно
нажать на кнопку, которая соответвует этому диоду, при этом загорится диод "верно", иначе диод "Не верно"
Я создал случайное четное число , что бы в двоичном виде всегда была единица, и записал его в порт. Загорелся случайный диод, теперь мне нужно узнать какой кнопкой выбрать правильный ответ, подскажите как?
if (~(PINA) & (1<<PINA7)==0) // Режим контроль
{
random=(~rand()); // зажигаем случайный диод
random1=rand();
if ( random % 2 == 0 )
{
if (random1 > 13)
{
DDRD = 0xFF;
PORTD = random;
}
else DDRE = 0xFF;
PORTE = random;
}
else random = 6;
DDRE = 0xFF;
PORTE = random;
if (~(PINA) & (1<<PINA0)==0)
{
if ((PINA & (1<< PINA0))== random) //if ((PIND & (1<< PD0)) == 0)
{
PORTE = 0x11110111; // Светодиод верно
PORTC =0x11101111;
}
будет ли работать такой код?
Вот я тупой, уже опять сам додумался ))) Я просто 3ий день прогаю, мне завтра готовый проект сдавать, поэтому постоянно спрашиваю, вы уж извините за офтоп ((
Есть ли способ запустить АТмега16 на частоте большей, чем паспортные 16 МГц? Например, 20 или 24МГц? И если да, что для этого надо - внешний генератор или достаточно кварца в стандартной обвязке? Надо ли повышать напряжения питание мк?
Подскажите, всегда ли надо инициализировать вершину стека при написании программ для МК AVR на Ассемблере. Т.е во всех программах инициализировать стек обязательно или нет ?
Если вы не используете прерывания, подпрограммы, обмен через стек, то не обязательно. Но это редкий вариант. Согласен с akl - используется/не используется стек, проинициализировать не мешает.
А что вы еще хотите, чтобы там было написано? Вроде как, там достаточно чтобы начать, а дальше можно (и нужно) самому учиться. "Видно, боцман, ты прав -
Жить нельзя научить,
можно лишь научить
говорить попугая" (с) слова из песни
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Хотел бы реже задавать глупые вопросы, но пока я в области МК профан
Есть задача: воспроизведение аудио потока 8кГц, 8 бит, моно.
Кварц на 12 МГц
Знаю что в сети есть готовый плеер на тиньке, но у меня мега8, и я хотел бы понять принцип и реализовать все самостоятельно.
Подскажите по какому принципу аппаратный ШИМ должен пульсировать, чтобы после RC цепочки было то, что нужно, а не набор пиков и п*ков?
Уже реализовал однотональное пианино используя CTC режим 16 битного таймера 1.
Знаю такую картинку, и понимаю что автор имел ввиду.
Но у меня проблемы с настройкой таймера / прерывайний. Использую cvavr CodeWizard.
Какой режим PWM выбрать, и что собственно делать с полученным байтом из аудио потока?
Нужно ли его как-то преобразовывать?
Мастер Ломастер писал(а):но с частотой несущей не промахнитесь - в этом режиме она получается меньше в 2 раза.
Я промахнуться не могу, т.к. в принципе ее не знаю.
У меня есть как минимум 4 варианта Fast PWM:
1. top FF
2. top 1FF
3. top 3FF
4. top OCR1A
Я так понимаю мне нужно выбрать из 2-3.
Помимо этого выбора, есть еще выбор между тем что означает OCR1A - скважность или нечто обратное ей. Inverted / Non-inverted
Я пытаюсь юзать Non-Inv., т.е. как я понимаю OCR1A в этом случае определит амплитуду на выходе RC прямо пропорционально своему значению.
Я упустил из виду, что нужно с частотой сэмплирования подавать байты, значит нужен таймер для этого. И таймер должен быть настроен на частоту 8кГц..
Так ведь?
Еще видимо у меня проблема с подачей данных, т.к. пилу (play_sample_cnt%N) воспроизводит, как мне кажется с нужной частотой.
Извиняюсь.
Суть - можно ли добавить кнопку, или добавить четвертое нажатие энкодера, чтобы свет начинал меняться сам. Затем опять жмем кнопку или энкодер, выставляем цвета и светодиод горит одним цветом. Поможет ли кто чайнику?
[b]— Да не боись, всего двенадцать вольт… и восемьсот ампер.[/b]
Всем привет.
Хочу изучить один микроконтроллер который у меня есть это Atmega8.
Подскажите сколько всего выводов можно использовать для управления светодиодами ?
И покажите пожалуйста их на схеме.