Свежие обсуждения
Микроконтроллеры

Разработка таймера на основе PIC16F628(A) с программой на языке С

1 12 21

Kiril_82, РЕКЛАМА???

Все PIC16 очень похожи. Различие в основном в объёме памяти и наборе периферии. Так что освоив, к примеру, 628(A) - перейти на 877(A) никакого труда не составит. Тому подтверждение - паяльная станция, которую разработал Splav56. С PIC18 я пока не работал, но думаю, что их освоить также будет несложно, зная PIC16.
А с любым навороченным многоногим МК можно и в Протеусе потренироваться, для тренировок так намного удобнее.

У нас тут - решение конкретной задачи. Будет другая, более сложная задача - применим другой МК, никто не помешает. А тут - тип МК указан в теме.

Я не хочу тут устраивать пустые дискуссии без определённой цели. От подобных причин тут у АВРщиков ветки загибаются. Потому что нет там обычно конкретных задач. А у нас есть. Сделаем таймер, отладим его, тогда ещё что-нибудь задумаем. Или есть возражения?

 

я за!

 

Беру на себя код генерирования цифр
Начал писать программу специально для этого.
Первый тестовый вариант - http://sergeyk.kiev.ua/soft/led2asm/index.html
Пока там еще невозможно переназначить ножки, к которым подключены соответствующие сегменты, но я надеюсь, что скоро решу проблему.

 

А с чем связан выбор индикатора с общим анодом?
Это связано со значением втекающих/вытекающих токов ножек МК или дело вкуса?

 

Дело вкуса. У меня именно такой оказался в запасе. Переделать программу на "общий катод" никакого труда не составляет.

По теме: пойдём помаленьку дальше? Или пока не спешить?

 

Вперед!

 

ОК, идём дальше. http://www.pic16.nm.ru/likbezc/otladka02.zip
Очередной кусок кода. Инициализация, уход в режим "сон", пробуждение, набор выдержки. По возможности старался применять switch-технологию, насколько я её понимаю. Написана подпрограмма опроса кнопок с отстройкой от помех и дребезга. Осталось немного.
Распечатал свою недоделанную программу на mikrobasic как образец, это помогает. До чего же всё-таки пока ещё непривычный синтаксис! Отлов допущенных по этой причине "багов" занимает немало времени. Хотя работать в "паровозе" - сплошное удовольствие. Всё на виду.

 

В что делают директивы:
#use fast_io(A) // Работа с портами без переключения
#use fast_io(B) // каждый раз регистров TRIS

я не совсем понимаю, о чем речь.

 

Это если функциями input и output пользоваться. Я сначала попробовал - не понравилось, решил с портами напрямую работать. Прямо стал указывать PORTB = 0 или gMYVAR = PORTB.
Подробности на стр.143 книги Шпака, а также на стр.348 и далее. Если будет неясно - спрашивайте, попытаюсь рассказать, как я это понимаю. А ещё есть в папке PICC файл Ccsc.chm - так вот оттуда очень много полезного узнать можете, только вот на английском.

 

Как организовать в CCS PICC вызов одной функции изнутри другой? Требуется вызвать функцию опроса кнопок из функции выдачи звукового сигнала окончания выдержки. Компилятор ругается и выдаёт ошибку. Попробовал добавить предварительное описание этих двух функций в начале программы (прототипы функций) - не помогло.