Так же изучайте компилятор в нём должен быть отладчик где можно просмотреть выполнения кода.
Доработка простой сигнализации на автозапуск
#21
Отправлено 25 мар 2014 - 18:41
#22
Отправлено 25 мар 2014 - 18:53
В протеусе я все это делал. Думал, ноутбук как-то не так работает, и повторил все действия на постороннем компе. Установил среду разработки, протеус, списал вручную код с книги, успешно скомпилировал. А в протеусе программа не работает так, как обещал автор книги. Светик загорается, но не тухнет. Только остановка моделирования и может его погасить.
#23
Отправлено 25 мар 2014 - 18:56
в CV отладчика нет, он как-то использует для этих целей AVR Studio.
#24
Отправлено 25 мар 2014 - 19:20
Если пример кода для одного МК описывается в книге, а используете другой, то проверять включеную перефирию которой в том МК нет. Поменяйте ножку МК на кнопку на другую.
#25
Отправлено 25 мар 2014 - 22:31
в книге тинька 2313, под него начинал программу составлять, потом научился компилить под другие МК. В протеусе собрал модель, тинька 2313 и прошивка (специально скачал образ диска, который к книге прилагался). С диска скопировал код, скомпилил, все равно в протеусе не пашет. Не могу поверить, что такую простую программу не может смоделировать. попробую другие ножки взять
#26
Отправлено 25 мар 2014 - 22:43
Другие порты задействовал, ничего не поменялось. Буду пробовать на макетке тогда, раз протеус облажался с такой простой программой
#27
Отправлено 25 мар 2014 - 23:00
Попробуй тогда помигать светодиодом.
while (1)
{
delay_us(20000);
PORTB.0=0;
delay_us(20000);
PORTB.0=1;
};
#28
Отправлено 26 мар 2014 - 17:12
мигает исправно. И более сложные проекты моделирует нормально. А такой простой код, как указано выше, смоделировать не может.
#29
Отправлено 26 мар 2014 - 18:17
Не работает ножка входа, может в этом МК что моделируете их просто нет этих портов, даташит хоть смотрели?
#30
Отправлено 26 мар 2014 - 19:45
Не работает ножка входа, может в этом МК что моделируете их просто нет этих портов, даташит хоть смотрели?
В книге применяется Attiny2313, и программа в той же книге написана именно для него. Все должно работать, но не работает. Я даже перебрал дюжину МК, компилируя прошивку под каждый из дюжины в отдельности. Вход работает, но не переключает светодиод в противоположное состояние. Просто банально перезапускает программу
#31
Отправлено 26 мар 2014 - 19:51
И в Code Vision настроить порты на вход/выход гораздо проще, чем в классическом ассемблере. Я пытался ассемблер изучать, ужас какой-то. Все сильно заморочено, вручную надо вбивать каждый параметр. Так и не вник. Си мне больше понравился, инициализация, вершина стека, и прочее, там создается само. Это я веду к тому, что порты настраиваю верно, несмотря на то, что я новичок :) Среда разработки не дает ошибиться с настройкой портов
#32
Отправлено 26 мар 2014 - 20:17
Я с тини не работаю и этот синтаксис точно проверять не могу, попробуй грузить весь порт сразу.
while (1)
{
// Place your code here
while (PIND.0==1) {}
delay_us(200);
if (PINB.0==1)
{ PORTB=0; }
else { PORTB=255; }
while (PIND.0==0) {}
delay_us(200);
};
}
#33
Отправлено 26 мар 2014 - 20:57
Все то же самое. Светики горят, и гаснут, если только передернуть ресет. Вот проекты на пиках исправно мигают в протеусе, только я туда ничего вписать не могу, незнакомая среда ))))))
#34
Отправлено 26 мар 2014 - 21:11
Я даже протеус обновил, думая, что более свежая версия справится с моделированием. А вот не справилась.
#35
Отправлено 26 мар 2014 - 22:39
протеус не причем ,у вас кнопка не работает как выше уже сказал rgb
у разных компиляторов свои нюансы по конфигурации портов ,в Code Vision я тоже не знаком , по пикам и MicroС могу подсказать .
while (1)
{
// Place your code here
while (PIND.0==1) {}
delay_us(200);
if (PINB.0==1) // не понятно почему и зачем здесь PINB, по условию у вас получается светодиод не будет гореть если на PINB единица ,наверное нужно исправить на PIND (кнопка не нажата подтянута к плюсу)
{ PORTB.0=0; }
else { PORTB.0=1; }
while (PIND.0==0) {}
delay_us(200);
};
}
#36
Отправлено 27 мар 2014 - 05:36
протеус не причем ,у вас кнопка мне работает как выше уже сказал rgb
у разных компиляторов свои нюансы по конфигурации портов ,в Code Vision я тоже не знаком , по пикам и MicroС могу подсказать .
while (1)
{
// Place your code here
while (PIND.0==1) {}
delay_us(200);
if (PINB.0==1) // не понятно почему и зачем здесь PINB, по условию у вас получается светодиод не будет гореть если на PINB единица ,наверное нужно исправить на PIND (кнопка не нажата подтянута к плюсу){ PORTB.0=0; }
else { PORTB.0=1; }
while (PIND.0==0) {}
delay_us(200);
};
}
Это в книге так было написано, и на диске точно так же…
if (PINB.0==1 ) // Условие: если светодтод выключен, то
{ PORTB.0=0; } // включаем его
#37
Отправлено 27 мар 2014 - 17:00
никак времени не найду на макетирование. А после работы хочется только спать
#38
Отправлено 27 мар 2014 - 17:03
не понятно почему и зачем здесь PINB, по условию у вас получается светодиод не будет гореть если на PINB единица ,наверное нужно исправить на PIND (кнопка не нажата подтянута к плюсу)
Так тоже делал. Путного ничего не выходило. То светик не загорался вовсе, то еще что.
#39
Отправлено 28 мар 2014 - 09:50
Собрал таки на макетке. Работает! )))) Это протеус не справился с моделированием. Только у меня время увеличено в 3 раза по сравнению с заданным.
#40
Отправлено 28 мар 2014 - 10:57
А как правильно при прошивке реального МК выставить фьюзы CKSEL, если в протеусе они 0100 ?
CKSEL3-0 CKSEL2-1 CKSEL1-0 CKSEL0-0 так?