Страница 29 из 115
Добавлено: Вс мар 22, 2009 22:54:01
ikarab
ЦЕЛИКОМ надо читать, а не МЕСТАМИ.
Вот "
Устройство микроконтроллера AVR" -
http://www.radiokot.ru/forum/viewtopic. ... 3579#93579
Добавлено: Пн мар 23, 2009 00:04:03
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)
};
}
Почему то не работает... что надо сделать?
Добавлено: Пн мар 23, 2009 00:22:13
sema
подумать надо, когда своей головой доходишь то это приносит пользу, когда чуть что спрашиваешь то забываешь ответ через 5 минут
Добавлено: Пн мар 23, 2009 00:22:20
ikarab
Приложить архив с проектами компилятора и симулятора.
Добавлено: Пн мар 23, 2009 00:26:51
Arlleex
я наверное в вот этих намудрил... Я не понима что это такое и как это перевести...
PORTD=0x1F;
DDRD=0x1F;
ACSR=0x80;
SFIOR=0x00
Я ошибки не вижу, другие программы сегодня так же писал...
Добавлено: Пн мар 23, 2009 00:48:57
therian
Stalker46 вро всех IDE есле не может скомпилировать то по казывает на какой строчке ошибка, ошибаться может на строчку в верх либо в низ но это достаточно близко. Вот посмотрите куда оно вам указывает внимательнее и ошибка будет видна, так начиная с первой ошибки нужно двигаться дальше пока все не исправиш
Добавлено: Пн мар 23, 2009 01:11:44
ikarab
после delay_ms(100)
нет точки с запятой.
и после
SFIOR=0x00
тоже.
Добавлено: Пн мар 23, 2009 10:18:36
Arlleex
Ошибки утилизированы
Добавлено: Пн мар 23, 2009 11:53:02
ikarab
Итог ? PROTEUS 7.4 sp3 с лекарством 1.6.5 скачали ?
Добавлено: Пн мар 23, 2009 12:00:18
Arlleex
Я ничего не скачивал, вернее давно, скачал протеус 7 профессионал.
Я нашел ошибки свои и схема моя пашет...
1.Народ, как в процессе написания программы назначать порты? я не понял...
2.это получается, что в настройках проекта надо указать все, а порты не трогать?
Добавлено: Пн мар 23, 2009 12:09:54
ikarab
Stalker46 писал(а): как в процессе написания программы назначать порты? я не понял...
Прочитайте выше "
Устройство микроконтроллера AVR" - поймете.
Добавлено: Пн мар 23, 2009 13:33:55
Arlleex
Я так понял, что если настроить порты на вывод, то они будут работать на вывод, а на ввод уже нельзя

?
Добавлено: Пн мар 23, 2009 15:44:32
SeregaT
Stalker46 писал(а):Тута я уже начитался...
Надо не начитываться, а делать то, что написано, потом пытаться писать свои программы, читать и делать дальше, снова писать своё.
Stalker46
ИМХО не стоит заморачиваться сразу с двумя языками программирования. Начал на Си, вот и изучай его, освоишь, можно и про ассемблер подумать.
Stalker46 писал(а):Вот еще:
Как это вы назначаете назначение портов в процессе написания программы?
Это и есть
PORTD.1=0 - то есть мы в процессе написания программы дали порту D... А что мы ему дали? Где тут его назначение (ввод или вывод)?
Выход обозначается PORT, вход обозначается PIN.
Например:
PORTD.0=1 // Сигнал (лог 1) на выходе 0 порта D
while (!PINB.0) // Ждём лог 1 на входе 0 порта B (можно на одном порту сделать и входы и выходы, и наверное можно один и тот-же вывод использовать как вход и как выход, но я так пока не пробовал

)
Stalker46 писал(а):Я так понял, что если настроить порты на вывод, то они будут работать на вывод, а на ввод уже нельзя

?
Можно. Тут полная свобода действий, огромный флаг в руки и барабан на шею

Добавлено: Пн мар 23, 2009 16:15:48
ikarab
SeregaT писал(а):огромный флаг в руки и барабан на шею

поезд навстречу !
Добавлено: Пн мар 23, 2009 16:21:19
SeregaT
Stalker46
Назначая входы, следует учесть, что если ждёшь лог 1, то нужно этот вывод соединить с общим проводом "землёй" через резистор килоом на 10. Если ждёшь лог 0 (значит в нормальном состоянии должен быть лог 1), то нужно соединить через резистор килоом 10 на +5 вольт.
Добавлено: Пн мар 23, 2009 16:21:33
Аксель
ikarab писал(а):
поезд навстречу !
мечта машиниста.
Добавлено: Пн мар 23, 2009 16:58:33
SeregaT
Кстати, все эти вопросы подробно и с примерами обсуждались в этой-же теме, на несколько страниц раньше

Добавлено: Пн мар 23, 2009 18:00:16
sema
можно
Добавлено: Пн мар 23, 2009 18:31:06
SeregaT
Подскажите, как выставить фьюзы на меге 16 для того, чтобы она работала от внешнего кварца?
По умолчанию они стоят так, как на рисунке (фьюзы в этой проге инвертные).
Просто напишите, где поставить, а где убрать.
P.S. С мегой 16 дел пока не имел, но собрался сделать один девайс, все собрал, прошил, а фьюзы пока не знаю как выставить, а запороть микросхемку за 88р что-то не хочется...
Добавлено: Пн мар 23, 2009 19:21:26
Arlleex
что то не могу я себе вдолбить...
Вы же сказали, что в процессе кода можно изменять назначение портов...
А это что? в Обучалке написано!
"Соответственно, если, скажем, PX3 настроен на ввод, то бесполезно писать что-либо в 3-й бит PortX, поскольку оно не будет выведено.
И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0."