Вот "Устройство микроконтроллера AVR" - http://www.radiokot.ru/forum/viewtopic. ... 3579#93579
С чего начать программировать микроконтроллеры?
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
ЦЕЛИКОМ надо читать, а не МЕСТАМИ.
Вот "Устройство микроконтроллера AVR" - http://www.radiokot.ru/forum/viewtopic. ... 3579#93579
Вот "Устройство микроконтроллера AVR" - http://www.radiokot.ru/forum/viewtopic. ... 3579#93579
- Реклама
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
#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 раз.
Не умеешь - не берись, но не взявшись не научишься...
подумать надо, когда своей головой доходишь то это приносит пользу, когда чуть что спрашиваешь то забываешь ответ через 5 минут
абажаю мой KIA CEED [img]http://www.kolobok.us/smiles/madhouse/to_become_senile.gif[/img]
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Реклама
- Сообщения: 1682
- Зарегистрирован: Чт окт 20, 2005 12:46:34
Stalker46 вро всех IDE есле не может скомпилировать то по казывает на какой строчке ошибка, ошибаться может на строчку в верх либо в низ но это достаточно близко. Вот посмотрите куда оно вам указывает внимательнее и ошибка будет видна, так начиная с первой ошибки нужно двигаться дальше пока все не исправиш
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
после delay_ms(100)
нет точки с запятой.
и после
SFIOR=0x00
тоже.
нет точки с запятой.
и после
SFIOR=0x00
тоже.
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Итог ? PROTEUS 7.4 sp3 с лекарством 1.6.5 скачали ?
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Я ничего не скачивал, вернее давно, скачал протеус 7 профессионал.
Я нашел ошибки свои и схема моя пашет...
1.Народ, как в процессе написания программы назначать порты? я не понял...
2.это получается, что в настройках проекта надо указать все, а порты не трогать?
Я нашел ошибки свои и схема моя пашет...
1.Народ, как в процессе написания программы назначать порты? я не понял...
2.это получается, что в настройках проекта надо указать все, а порты не трогать?
Не умеешь - не берись, но не взявшись не научишься...
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Прочитайте выше "Устройство микроконтроллера AVR" - поймете.Stalker46 писал(а): как в процессе написания программы назначать порты? я не понял...
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Надо не начитываться, а делать то, что написано, потом пытаться писать свои программы, читать и делать дальше, снова писать своё.Stalker46 писал(а):Тута я уже начитался...
Stalker46
ИМХО не стоит заморачиваться сразу с двумя языками программирования. Начал на Си, вот и изучай его, освоишь, можно и про ассемблер подумать.
Выход обозначается PORT, вход обозначается PIN.Stalker46 писал(а):Вот еще:
Как это вы назначаете назначение портов в процессе написания программы?
Это и есть
PORTD.1=0 - то есть мы в процессе написания программы дали порту D... А что мы ему дали? Где тут его назначение (ввод или вывод)?
Например:
PORTD.0=1 // Сигнал (лог 1) на выходе 0 порта D
while (!PINB.0) // Ждём лог 1 на входе 0 порта B (можно на одном порту сделать и входы и выходы, и наверное можно один и тот-же вывод использовать как вход и как выход, но я так пока не пробовал
Можно. Тут полная свобода действий, огромный флаг в руки и барабан на шеюStalker46 писал(а):Я так понял, что если настроить порты на вывод, то они будут работать на вывод, а на ввод уже нельзя?
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
поезд навстречу !SeregaT писал(а):огромный флаг в руки и барабан на шею
Stalker46
Назначая входы, следует учесть, что если ждёшь лог 1, то нужно этот вывод соединить с общим проводом "землёй" через резистор килоом на 10. Если ждёшь лог 0 (значит в нормальном состоянии должен быть лог 1), то нужно соединить через резистор килоом 10 на +5 вольт.
Назначая входы, следует учесть, что если ждёшь лог 1, то нужно этот вывод соединить с общим проводом "землёй" через резистор килоом на 10. Если ждёшь лог 0 (значит в нормальном состоянии должен быть лог 1), то нужно соединить через резистор килоом 10 на +5 вольт.
мечта машиниста.ikarab писал(а): поезд навстречу !
Скелет колобка состоит из черепа.
Кстати, все эти вопросы подробно и с примерами обсуждались в этой-же теме, на несколько страниц раньше 
можно
абажаю мой KIA CEED [img]http://www.kolobok.us/smiles/madhouse/to_become_senile.gif[/img]
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Подскажите, как выставить фьюзы на меге 16 для того, чтобы она работала от внешнего кварца?
По умолчанию они стоят так, как на рисунке (фьюзы в этой проге инвертные).
Просто напишите, где поставить, а где убрать.
P.S. С мегой 16 дел пока не имел, но собрался сделать один девайс, все собрал, прошил, а фьюзы пока не знаю как выставить, а запороть микросхемку за 88р что-то не хочется...
По умолчанию они стоят так, как на рисунке (фьюзы в этой проге инвертные).
Просто напишите, где поставить, а где убрать.
P.S. С мегой 16 дел пока не имел, но собрался сделать один девайс, все собрал, прошил, а фьюзы пока не знаю как выставить, а запороть микросхемку за 88р что-то не хочется...
- Вложения
-
- Default Fuses ATmega16.JPG
- (56.79 КБ) 388 скачиваний
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
что то не могу я себе вдолбить...
Вы же сказали, что в процессе кода можно изменять назначение портов...
А это что? в Обучалке написано!
"Соответственно, если, скажем, PX3 настроен на ввод, то бесполезно писать что-либо в 3-й бит PortX, поскольку оно не будет выведено.
И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0."
Вы же сказали, что в процессе кода можно изменять назначение портов...
А это что? в Обучалке написано!
"Соответственно, если, скажем, PX3 настроен на ввод, то бесполезно писать что-либо в 3-й бит PortX, поскольку оно не будет выведено.
И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0."
Не умеешь - не берись, но не взявшись не научишься...


