С чего начать программировать микроконтроллеры?
#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)
};
}
Почему то не работает... что надо сделать?
#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 раз.
Не умеешь - не берись, но не взявшись не научишься...
Приложить архив с проектами компилятора и симулятора.
Последний раз редактировалось ikarab Пн мар 23, 2009 00:28:48, всего редактировалось 1 раз.
-
therian
- Говорящий с текстолитом
- Сообщения: 1682
- Зарегистрирован: Чт окт 20, 2005 12:46:34
- Контактная информация:
Stalker46 вро всех IDE есле не может скомпилировать то по казывает на какой строчке ошибка, ошибаться может на строчку в верх либо в низ но это достаточно близко. Вот посмотрите куда оно вам указывает внимательнее и ошибка будет видна, так начиная с первой ошибки нужно двигаться дальше пока все не исправиш
Я ничего не скачивал, вернее давно, скачал протеус 7 профессионал.
Я нашел ошибки свои и схема моя пашет...
1.Народ, как в процессе написания программы назначать порты? я не понял...
2.это получается, что в настройках проекта надо указать все, а порты не трогать?
Я нашел ошибки свои и схема моя пашет...
1.Народ, как в процессе написания программы назначать порты? я не понял...
2.это получается, что в настройках проекта надо указать все, а порты не трогать?
Не умеешь - не берись, но не взявшись не научишься...
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18849
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Stalker46 писал(а):Тута я уже начитался...
Надо не начитываться, а делать то, что написано, потом пытаться писать свои программы, читать и делать дальше, снова писать своё.
Stalker46
ИМХО не стоит заморачиваться сразу с двумя языками программирования. Начал на Си, вот и изучай его, освоишь, можно и про ассемблер подумать.
Stalker46 писал(а):Вот еще:
Как это вы назначаете назначение портов в процессе написания программы?
Это и есть
PORTD.1=0 - то есть мы в процессе написания программы дали порту D... А что мы ему дали? Где тут его назначение (ввод или вывод)?
Выход обозначается PORT, вход обозначается PIN.
Например:
PORTD.0=1 // Сигнал (лог 1) на выходе 0 порта D
while (!PINB.0) // Ждём лог 1 на входе 0 порта B (можно на одном порту сделать и входы и выходы, и наверное можно один и тот-же вывод использовать как вход и как выход, но я так пока не пробовал
Stalker46 писал(а):Я так понял, что если настроить порты на вывод, то они будут работать на вывод, а на ввод уже нельзя?
Можно. Тут полная свобода действий, огромный флаг в руки и барабан на шею
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18849
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Подскажите, как выставить фьюзы на меге 16 для того, чтобы она работала от внешнего кварца?
По умолчанию они стоят так, как на рисунке (фьюзы в этой проге инвертные).
Просто напишите, где поставить, а где убрать.
P.S. С мегой 16 дел пока не имел, но собрался сделать один девайс, все собрал, прошил, а фьюзы пока не знаю как выставить, а запороть микросхемку за 88р что-то не хочется...
По умолчанию они стоят так, как на рисунке (фьюзы в этой проге инвертные).
Просто напишите, где поставить, а где убрать.
P.S. С мегой 16 дел пока не имел, но собрался сделать один девайс, все собрал, прошил, а фьюзы пока не знаю как выставить, а запороть микросхемку за 88р что-то не хочется...
- Вложения
-
- Default Fuses ATmega16.JPG
- (56.79 КБ) 388 скачиваний
что то не могу я себе вдолбить...
Вы же сказали, что в процессе кода можно изменять назначение портов...
А это что? в Обучалке написано!
"Соответственно, если, скажем, PX3 настроен на ввод, то бесполезно писать что-либо в 3-й бит PortX, поскольку оно не будет выведено.
И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0."
Вы же сказали, что в процессе кода можно изменять назначение портов...
А это что? в Обучалке написано!
"Соответственно, если, скажем, PX3 настроен на ввод, то бесполезно писать что-либо в 3-й бит PortX, поскольку оно не будет выведено.
И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0."
Не умеешь - не берись, но не взявшись не научишься...