С чего начать программировать микроконтроллеры?

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

ЦЕЛИКОМ надо читать, а не МЕСТАМИ.

Вот "Устройство микроконтроллера AVR" - http://www.radiokot.ru/forum/viewtopic. ... 3579#93579
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

#include <mega16>
#include <delay>

// Declare your global variables here

void main(void)
{
// Declare your local variables here


PORTD=0x1F;
DDRD=0x1F;

ACSR=0x80;
SFIOR=0x00;

while (1)
{
PORTD.0=1; //
delay_ms(100); //
PORTD.0=0; //
delay_ms(100); //
PORTD.0=1; //
delay(100); //
PORTD.1=1; //
delay_ms(100); //
PORTD.1=0; //
PORTD.0=0; //
delay_ms(100); //
PORTD.0=1; //
delay_ms(100); //
PORTD.1=1; //
delay_ms(100); //
PORTD.2=1; //
delay(100); //
PORTD.2=0; //
PORTD.1=0; //
PORTD.0=0; //
delay_ms(100); //
PORTD.0=1; //
delay_ms(100); //
PORTD.1=1; //
delay_ms(100); //
PORTD.2=1; //
delay_ms(100); //
PORTD.3=1; //
delay_ms(100); //
PORTD.3=0; //
PORTD.2=0; //
PORTD.1=0; //
PORTD.0=0; //
delay_ms(100); //
PORTD.0=1; //
delay_ms(100); //
PORTD.1=1; //
delay_ms(100); //
PORTD.2=1; //
delay_ms(100); //
PORTD.3=1; //
delay_ms(100); //
PORTD.4=1; //
delay_ms(100); //
PORTD.4=0; //
PORTD.3=0; //
PORTD.2=0; //
PORTD.1=0; //
PORTD.0=0; //
delay_ms(100)

};
}




Почему то не работает... что надо сделать?
Последний раз редактировалось Arlleex Пн мар 23, 2009 00:28:10, всего редактировалось 1 раз.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
sema
Мудрый кот
Сообщения: 1708
Зарегистрирован: Ср апр 23, 2008 17:44:56
Откуда: Россия, г. Нижний Новгород
Контактная информация:

Сообщение sema »

подумать надо, когда своей головой доходишь то это приносит пользу, когда чуть что спрашиваешь то забываешь ответ через 5 минут
абажаю мой KIA CEED [img]http://www.kolobok.us/smiles/madhouse/to_become_senile.gif[/img]
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

Приложить архив с проектами компилятора и симулятора.
Последний раз редактировалось ikarab Пн мар 23, 2009 00:28:48, всего редактировалось 1 раз.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

я наверное в вот этих намудрил... Я не понима что это такое и как это перевести...

PORTD=0x1F;
DDRD=0x1F;

ACSR=0x80;
SFIOR=0x00

Я ошибки не вижу, другие программы сегодня так же писал...
Не умеешь - не берись, но не взявшись не научишься...
therian
Говорящий с текстолитом
Сообщения: 1682
Зарегистрирован: Чт окт 20, 2005 12:46:34
Контактная информация:

Сообщение therian »

Stalker46 вро всех IDE есле не может скомпилировать то по казывает на какой строчке ошибка, ошибаться может на строчку в верх либо в низ но это достаточно близко. Вот посмотрите куда оно вам указывает внимательнее и ошибка будет видна, так начиная с первой ошибки нужно двигаться дальше пока все не исправиш
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

после delay_ms(100)
нет точки с запятой.

и после
SFIOR=0x00
тоже.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Ошибки утилизированы
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

Итог ? PROTEUS 7.4 sp3 с лекарством 1.6.5 скачали ?
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Я ничего не скачивал, вернее давно, скачал протеус 7 профессионал.
Я нашел ошибки свои и схема моя пашет...


1.Народ, как в процессе написания программы назначать порты? я не понял... :oops:
2.это получается, что в настройках проекта надо указать все, а порты не трогать?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

Stalker46 писал(а): как в процессе написания программы назначать порты? я не понял...


Прочитайте выше "Устройство микроконтроллера AVR" - поймете.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Я так понял, что если настроить порты на вывод, то они будут работать на вывод, а на ввод уже нельзя :roll: ?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18849
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Stalker46 писал(а):Тута я уже начитался...

Надо не начитываться, а делать то, что написано, потом пытаться писать свои программы, читать и делать дальше, снова писать своё.
Stalker46
ИМХО не стоит заморачиваться сразу с двумя языками программирования. Начал на Си, вот и изучай его, освоишь, можно и про ассемблер подумать.
Stalker46 писал(а):Вот еще:

Как это вы назначаете назначение портов в процессе написания программы?


Это и есть
PORTD.1=0 - то есть мы в процессе написания программы дали порту D... А что мы ему дали? Где тут его назначение (ввод или вывод)?

Выход обозначается PORT, вход обозначается PIN.
Например:
PORTD.0=1 // Сигнал (лог 1) на выходе 0 порта D
while (!PINB.0) // Ждём лог 1 на входе 0 порта B (можно на одном порту сделать и входы и выходы, и наверное можно один и тот-же вывод использовать как вход и как выход, но я так пока не пробовал :) )
Stalker46 писал(а):Я так понял, что если настроить порты на вывод, то они будут работать на вывод, а на ввод уже нельзя :roll: ?

Можно. Тут полная свобода действий, огромный флаг в руки и барабан на шею :)
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

SeregaT писал(а):огромный флаг в руки и барабан на шею :)

поезд навстречу !
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18849
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Stalker46
Назначая входы, следует учесть, что если ждёшь лог 1, то нужно этот вывод соединить с общим проводом "землёй" через резистор килоом на 10. Если ждёшь лог 0 (значит в нормальном состоянии должен быть лог 1), то нужно соединить через резистор килоом 10 на +5 вольт.
Аватара пользователя
Аксель
Опытный кот
Сообщения: 800
Зарегистрирован: Ср апр 25, 2007 09:50:43
Откуда: Киев
Контактная информация:

Сообщение Аксель »

ikarab писал(а):поезд навстречу !
мечта машиниста.
Скелет колобка состоит из черепа.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18849
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Кстати, все эти вопросы подробно и с примерами обсуждались в этой-же теме, на несколько страниц раньше ;)
Аватара пользователя
sema
Мудрый кот
Сообщения: 1708
Зарегистрирован: Ср апр 23, 2008 17:44:56
Откуда: Россия, г. Нижний Новгород
Контактная информация:

Сообщение sema »

можно
абажаю мой KIA CEED [img]http://www.kolobok.us/smiles/madhouse/to_become_senile.gif[/img]
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18849
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Подскажите, как выставить фьюзы на меге 16 для того, чтобы она работала от внешнего кварца?
По умолчанию они стоят так, как на рисунке (фьюзы в этой проге инвертные).
Просто напишите, где поставить, а где убрать.
P.S. С мегой 16 дел пока не имел, но собрался сделать один девайс, все собрал, прошил, а фьюзы пока не знаю как выставить, а запороть микросхемку за 88р что-то не хочется...
Вложения
Default Fuses ATmega16.JPG
(56.79 КБ) 388 скачиваний
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

что то не могу я себе вдолбить...
Вы же сказали, что в процессе кода можно изменять назначение портов...
А это что? в Обучалке написано!


"Соответственно, если, скажем, PX3 настроен на ввод, то бесполезно писать что-либо в 3-й бит PortX, поскольку оно не будет выведено.
И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0."
Не умеешь - не берись, но не взявшись не научишься...
Ответить

Вернуться в «Теория»