Перейти к содержимому

Фотография

Доработка простой сигнализации на автозапуск


Сообщений в теме: 51

#21
rgb

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 865 сообщений
  • ГородКременчуг

Так же изучайте компилятор в нём должен быть отладчик где можно просмотреть выполнения кода.



#22
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

В протеусе я все это делал. Думал, ноутбук как-то не так работает, и повторил все действия на постороннем компе. Установил среду разработки, протеус, списал вручную код с книги, успешно скомпилировал. А в протеусе программа не работает так, как обещал автор книги. Светик загорается, но не тухнет. Только остановка моделирования и может его погасить. 



#23
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

в CV отладчика нет, он как-то использует для этих целей AVR Studio.



#24
rgb

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 865 сообщений
  • ГородКременчуг

Если пример кода для одного МК описывается в книге, а используете другой, то проверять включеную перефирию которой в том МК нет. Поменяйте ножку МК на кнопку на другую.  



#25
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

в книге тинька 2313, под него начинал программу составлять, потом научился компилить под другие МК.  В протеусе  собрал модель, тинька 2313 и прошивка  (специально скачал образ диска, который к книге прилагался). С диска скопировал код, скомпилил, все равно в протеусе не пашет. Не могу поверить, что такую простую программу не может смоделировать.  попробую другие ножки взять



#26
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

Другие порты задействовал, ничего не поменялось. Буду пробовать на макетке тогда, раз протеус облажался с такой простой программой



#27
rgb

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 865 сообщений
  • ГородКременчуг

Попробуй тогда помигать светодиодом.

 

while (1)
{

delay_us(20000);
PORTB.0=0; 

delay_us(20000);

PORTB.0=1; 

};



#28
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

мигает исправно. И более сложные проекты моделирует нормально. А такой простой код, как указано выше, смоделировать не может. 



#29
rgb

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 865 сообщений
  • ГородКременчуг

Не работает ножка входа, может в этом МК что моделируете их просто нет этих портов, даташит хоть смотрели? :help:   :super_sz:  :girl_cray2:



#30
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

Не работает ножка входа, может в этом МК что моделируете их просто нет этих портов, даташит хоть смотрели? :help:   :super_sz:  :girl_cray2:

В книге применяется Attiny2313, и программа в той же книге написана именно для него.  Все должно работать, но не работает. Я даже перебрал дюжину МК, компилируя прошивку под каждый из дюжины в отдельности. Вход работает, но не переключает светодиод в противоположное состояние. Просто банально перезапускает программу



#31
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

И в Code Vision настроить порты на вход/выход гораздо проще, чем в классическом ассемблере. Я пытался ассемблер изучать, ужас какой-то. Все сильно заморочено, вручную надо вбивать каждый параметр. Так и не вник. Си мне больше понравился,  инициализация, вершина стека, и прочее, там создается само. Это я веду к тому, что порты настраиваю верно, несмотря на то, что я новичок :) Среда разработки не дает ошибиться с настройкой портов



#32
rgb

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 865 сообщений
  • ГородКременчуг

Я с тини не работаю и этот синтаксис точно проверять не могу, попробуй грузить весь порт сразу.

 

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
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

Все то же самое. Светики  горят, и гаснут, если только передернуть ресет. Вот проекты на пиках исправно мигают в протеусе, только я туда ничего вписать не могу, незнакомая среда ))))))



#34
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

Я даже протеус обновил, думая, что более свежая версия справится с моделированием. А вот не справилась. 



#35
goda

    Продвинутый пользователь

  • Проверенные
  • 565 сообщений

протеус не причем ,у вас кнопка не работает как выше уже сказал 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
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

протеус не причем ,у вас кнопка мне работает как выше уже сказал 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
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

никак времени не найду на макетирование. А после работы хочется только спать



#38
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

 

не понятно почему и зачем здесь PINB, по условию у вас получается светодиод не будет гореть если на PINB единица ,наверное нужно исправить на PIND (кнопка не нажата подтянута к плюсу)

 Так тоже делал. Путного ничего не выходило. То светик не загорался вовсе, то еще что.  



#39
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

Собрал таки  на макетке. Работает! )))) Это протеус не справился с моделированием. Только у меня время увеличено в 3 раза по сравнению с заданным. 



#40
16f628

    Продвинутый пользователь

  • Пользователи
  • 85 сообщений
  • ГородРоссия, Ростовская обл.

А как правильно при прошивке реального МК выставить фьюзы CKSEL, если в протеусе они 0100

CKSEL3-0   CKSEL2-1   CKSEL1-0   CKSEL0-0 так?