• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
panther1

Microc (Pro)

36 сообщений в этой теме

panther1    1

Всем Привет.

Предисловие:

Начну наверно как многие здесь - Я в PIC'ах новичек. Спаял программатор Extra-Pic, купил МК 16F73, Скачал программу MicroC Pro 2009 ну и поставил перед собой задачу, она конечно глобальная и пока целиком нехочу о ней рассказывать (всему свое время), самое главное что в ней затронется обучение с самого начала (помигать Светодиодом) потом что то вроде светодиодной шкалы из 4 светодиодов, далее использование кнопки для запуска работы и т.д. заканчивая подключением LCD и выводом на него информации. Надеюсь Вы мне поможете и подскажете, потому как информации и примеров программ на MicroC с хорошими комментариями в сети почти не нашел, а данная ветка поможет многим новичкам к тому же проект будет затрагивать многие интересные для начинающих вопросы.

Глава 1

Моргаем светодиодом.

Создал новый проект, задал в нем МК и частоту кварца, написал вот такую программку:

void main ()

{

TRISB.F3=0;

while(1)

{

PORTB.F3=1;

Delay_ms(500);

PORTB.F3=0;

Delay_ms(500);

}

}

Нашел этот пример где то на просторах интернета практически без описания, кроме Delay (ждать 0,5 сек.) ничего непонятно.

1 - Что такое TRISB

2 - что такое while (думаю начало цикла) и почему он (1)?

3 - PORTB 1 и PORTB 0 Это включить и выключить светодиод но на какой ноге порта B он должен висеть (F3 это и есть третя нога)?

Ну и последнее на сегодня - как скомпилировать программу в HEX?

С Уважением и надеждой на взаимопонимание!

P.S. Модераторы пожалуйста поменяйте название темы, торопился и допустил опечатку в слове Micro, и букву "С" в конце большую. "MicroC Pro"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Alex    525

Вы немного не с того начали. Слишком высокий шаг для начинающего.

Для начала покурите даташит, узнайте что может МК, какая у него структура и т.д.. А потом уже начинайте писать программы.

1 - Что такое TRISB

Это направление порта (вход/выход).

2 - что такое while (думаю начало цикла) и почему он (1)?

По Русски это будет так

пока(условие)

{

выполнять

этот

код

.....

}

В хелпе всё это есть.

(F3 это и есть третя нога)?

Это RB3.

REG.Fx = val ;

Это присвоить в регистре REG биту под номером х значение val

В хелпе всё это есть.

Ну и последнее на сегодня - как скомпилировать программу в HEX?

Читайте хелп на МикроСи, там всё есть.

PS: Тему не переименуешь в MicroC, не даст движок форума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
panther1    1

По поводу даташита и хелпа в английском я силен процентов на 70, а в техническом английском процентов на 20-30, так что в даташите понимаю не очень много. помигать светодиодом думаю можно на любом МК.

Хелп только что нашел от 6 версии MicroC, завтра буду разбираться. Дело в том что интернет у меня дома, а разбираюсь с МК на работе во время обеда ну и в редкие минуты перекура. Так что часа полтора в день всего, поэтому и создал эту ветку, чтоб помогли поскорее освоиться. Завтра буду пробовать компилировать и эмулировать в pic simulator'e, как получится поморгать буду двигаться дальше по намеченному плану. со временем и надеюсь отчасти с Вашей помощью начну более глубоко разбираться в струткуре МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

Начните с МК на который есть Русский ДШ. Например 16F628A, дёшево и сердито :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

угу, неплохой камень, можно еще 688, но насчет русского дш для него я хз...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
panther1    1

Выпросил комп с интернетом на 5 мин на работе.

Ну пока нет 628, пытаюсь поморгать тем что есть. :) Скомпилировал программку в pic simulator загрузил, но функция delay не отрабатывает, зацикливается. Светодиод включается и все ждать хоть 0,5сек хоть 5 мин в режиме нормал или фаст все равно не моргает. Подскажите в чем проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

может компилятор левый какой-нить? по идее вышеприведенный код должен быть правильным...

зы: советую скачать нормальный проверенный компилятор, это PCWH PICC... на него и библиотек/драйверов, и книг полно, например "Шпак Ю.А. - Программирование на языке C для AVR и PIC"...

Изменено пользователем NebsteR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
panther1    1

скачал, установил просит регистрационный файл которого нет :(

Скомпилировал программу в mikroC 6, mikroC 9, MikroC Pro 2009 V2.5 Результат один и тот же. что то странно это. могу выложить Hex файл посмотрите может вы поймете почему не работает в PIC Simulator.

В общем вот файлик: http://slil.ru/28012402 , если будет время посмотрите кто разбирается в этом пожалуйста буду признателен.

p.s. Немогу на название темы смотреть, прям бесит омечатка. может создадите тему с нормальным названием как с бейсиком, я б утда свои вопросы выкладывал да и другим может быть было проще куски кода туда кидать на С, чем каждый раз новую тему создавать.

Изменено пользователем panther1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

стукнись в аську, номер в профиле, скину рег. файл и, если надо, гарантированно работающую с ним версию компилятора...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мой тебе совет не парься с PIC Simulator, он работает нормально только если прога написана на его дибильном бейсике, скачай Proteus поставь и эмулируй в нем любые схемы с любыми МК.МикроСи отличный компилятор, особенно хелп на него, кроме этого хелпа в принципе ничего больше не надо, там описан и Си и все библиотеки и куча примеров, причем рабочих примеров.Если же хочешь все писать своими ручками т.е вникнуть в структуру всего, что скрыто за библиотеками от разработчиков тогда тебе нужен HITECH-PICC, но лучше не заморачивайся, а пользуй микроСи и не мечись в стороны.

Хелп на русском от 6-й версии подходит и для других более новых версий, хотя я лично пользуюсь версией 6 и не заморачиваюсь.

Удачи.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

В протеусе нет такого ПИКа, а ему нужен именно этот.

panther1, А зачем Вам симулятор ? Никак не пойму. У Вас есть железо, пробуйте на нём !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

есть там такой пик)) 16C73B, почти полный аналог, работает отлично, пообщались с panther1 в аське, в итоге полку пиководов прибыло :D

Изменено пользователем NebsteR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525
есть там такой пик)) 16C73B
Точно B) Про С забыл :D
в итоге полку пиководов прибыло
Это есть ГУД ;)

Кстати, его прога в протеусе работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

угу)

Изменено пользователем NebsteR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
panther1    1
Мой тебе совет не парься с PIC Simulator, он работает нормально только если прога написана на его дибильном бейсике, скачай Proteus поставь и эмулируй в нем любые схемы с любыми МК.МикроСи отличный компилятор, особенно хелп на него, кроме этого хелпа в принципе ничего больше не надо, там описан и Си и все библиотеки и куча примеров, причем рабочих примеров.Если же хочешь все писать своими ручками т.е вникнуть в структуру всего, что скрыто за библиотеками от разработчиков тогда тебе нужен HITECH-PICC, но лучше не заморачивайся, а пользуй микроСи и не мечись в стороны.

Хелп на русском от 6-й версии подходит и для других более новых версий, хотя я лично пользуюсь версией 6 и не заморачиваюсь.

Удачи.

Спасибо уже все понял сношу пик симулятор, и разбираюсь с протеусом.

В протеусе нет такого ПИКа, а ему нужен именно этот.

panther1, А зачем Вам симулятор ? Никак не пойму. У Вас есть железо, пробуйте на нём !

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
teapot    1

Не смотря на дату созданной темы, вставлю я свои 5 копеек. Когда сам только начинал постигать mikroC, все гурьбой кричали, мол учи сначала архитектуру МК а только потом лезь в языки - оно то да, но если сугубо погружаться в них полностью и всяк, а если поморгать светодиодом, иль, что другое простенькое сделать. так лезть с головой в архитектуру это извращенство! хотя это сугубо мое мнение.

Определил я для себя одно: прежде чем лезть в программирование МК, нужно поставить конкретную задачу для чего это вообще нужно. По архитектуре пройтись конечно стоит, что бы знать куда, копать, но для начала можно просто узнать какой функционал МК действительно понадобится и откинуть все остальное - пока откинуть, а позже может и вернуться, опять же если надо будет. Перелопатил я кучу умной литературы, по рекомендации тех же "архитектурщиков", и естественно для меня, человека нового в этом всем, полученная информация была как с другой планеты, которая не могла сразу поместится в мою голову, а соответственно оперировать какими-то понятиями было просто нереально. И лишь случайно в поисках новой, более понятной литературы напоролся на сайт какого-то кружка детского, где было описано начало работы с МК. Хоть в статьях на этом сайте и были какие то расхождения с теми заумными книжками, но они были написаны для школьников, и естественно направление моим трудам было задано. И всем "архитекторам" могу сказать, что врубился в работу портов ввода вывода, в таймеры, только после того, как просмотрел как это все работает, естественно написав перед этим программу по примерам.

Многие отсылают перелопачивать даташит - это конечно гуд - инфа там есть нужная, но опять же никто из отсылающих не расскажет как этим даташитом правильно пользоваться. А ведь для начинающего это проблема.

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

http://ehob.by/index...ikrokontrollery

П.С. Есть такой метод - от противного. Для начала можно, что то сделать, и после копать как это работает.

Изменено пользователем teapot
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525
Оставлю ссыль на сайт кружка, где читал статьи, может ком пригодится.

http://ehob.by/index...ikrokontrollery

Нормальные статейки для начинающих. Правда есть небольшие "ляпы", но терпимые...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос к знатокам "MikroC for PIC". У меня версия 4.60. Работают ли таймеры в симуляторе?

Вот фрагмент:

void izm () // измерение

{

out=1; Delay_us (10); out=0; TMR1L=TMR1H=0;

while (in==0) { } // ждем единицу

T1CON=0x01; // вкл таймер

while (in==1) { } // ждем нуль

T1CON=0;

Процесс идет нормально, но TMR1L и TMR1H остаются равны 0 и в процессе счета, и после остановки таймера.

Заранее благодарен за помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

1-ый таймер просто включить - недостаточно. Нужно ещё настроить ему тактирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1-й бит T1CON, т.е. TMR1CS = 0. Это значит: используется внутренний тактовый генератор Fosc/4. В ассемблере вроде бы больше я никаких регистров не настраивал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

А, Вы сразу в регистр T1CON пишите значение, не обратил внимание, смутил комментарий "вкл таймер".

Значит такая IDE "хорошая" :) Попробуйте в протеусе или на железе. Всё должно работать.

PS: У Микрочипа есть своя фирменная IDE (Mplab IDE) и свой Си-компилятор (XC8), советую ими пользоваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо. До железа еще далеко, устройство еще не всё сформировалось. MPLAB IDE 8.91 когда-то запускал, но мне что-то не понравилось или что-то не получилось. Уже не помню. Попробую еще...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет! Подскажите кто-нибудь: в компиляторе mikroC pro for PIC пытаюсь запускать отладку (меню Run), но тут же открывается вкладка с другой программой (.с-файлом), в которой тоже недавно включал отладку. А в нужной проге никак, я уже перезапускал mikroC, не помогает, какие-то глюки, что ли?:help:

Изменено пользователем Aleksandr1111

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 100

может проект нужно пересоздать или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас