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

PIC 12F629

1 2

Товарищи, буду очень признателен если кто-нибудь поможет студенту
Нам выдали задание, только вот дисциплина совершенно, не по моей специальности. А задание следующее:

Для микроконтроллера PIC 12F629 написать программу вывода на выход GPIO5 частоты с периодом 50 мкс, на выход GPIO4 частоты с периодом 2 сек, а на выход GPIO2 частоты с периодом 2 сек (Поочередное включение, как на железнодорожном переезде).

Сам препод говорит, что программка не трудная, всего пару строчек, но т.к. это не по моей специальности, для меня - это тёмный лес. Помогите пожалуйста
Код нужно на C. А если еще и на ассемблере, то будет все вообще шикарно
Заранее спасибо!

 

Вобще прога для микроконтроллера это не так просто, если вы никогда не связывались с этим делом, попроси умных пацанов они напишут....

 

Я тут чисто для прикола попробовал это сделать. Работает, но ногой GPIO4 дрыгать не могу. Если автор топика скажет как дёргать этой ногой, то код отдам

 

Vladikas: но ногой GPIO4 дрыгать не могу

проверьте правильность установки конфигурации

 

Мне неохото тратить трафик на даташит, который мне не нужен (5 мегов). С наскоку не получается правда Ну осциллятор внутренний выбрал, чтоб ноги были свободны (4,5). Сделал вид, что осциллятор этот на 20МГц, ну мне так захотелось Пятая нога дрыгается, чётвёртая нет. Трис забил нулями. Попытался по крайней мере, получилось 00001000, вывод в порт 0xff даёт на выходе 00100111 Реально там всего шесть выводов (0-5)На третьей ноге висит MCLR. В протеусе так ваще пока плюс не подашь на эту ногу ни один PIC не хочет эмулироваться. Хотя тут это и не нужно ща.

Хоть слово конструктивное от автора топега услышим?

#include <12F629.h>

#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Внутренний генератор

#use delay(clock=20000000)

#int_TIMER1
TIMER1_isr()
{
}
void main()
{
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
setup_comparator(NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
SET_TRIS_a(0);
While (1)
{
}
}

 

Vladikas: В протеусе так ваще пока плюс не подашь на эту ногу ни один PIC не хочет эмулироваться
Правильно! Пока на этой ножке (если она настроенна как MCLR) не будет "+", то МК остается в "сбросе".

Я как-то забыл подтянуть эту ножку в реальной схеме к "+" (осталась висеть в воздухе). Так несколько дней ковырялся в схеме, не понимая, почему МК хаотично заводится на 1-2 сек и зависает (судя по LCD), а в схеме я ее тоже забыл нарисовать.

 

Да эт понятно, тоже обжигался Тока как настроить эту ногу на не MCLR я не знаю.

 

Vladikas: Тока как настроить эту ногу на не MCLR я не знаю.
#FUSES NOMCLR //Master Clear pin used for I/O
У PICC есть мастер создания нового проекта. Запустите его, там все начальные настройки для МК можно в удобной форме сделать и потом скопировать нужный код в свой файл прямо из окна мастера.

 

А четвёртую?

 

Vladikas: А четвёртую?
Фуз
INTRC_IO