Програмирование pic на СИ.
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Програмирование pic на СИ.
Как оказалось в интернете сложно найти хороший самоучитель на си для PIC. Здесь не плохой материал, но как на меня очень укороченный и не такой детализированный как самоучитель на Асемблере с этогож сайта. Поэтому давайте делиться литературой и раскрывать эту тему.
- Реклама
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
Хороший материал:)dosikus писал(а):http://www.helloworld.ru/texts/comp/lang/c/c6/index.htm
Re: Програмирование pic на СИ.
Для начинающих самое то.misterkuk писал(а): Хороший материал:)
Далее читай Сида Катцена , ну и классиков Керниган и Ричи.
PS. Шпака можно но сверяясь с фирменным даташитом , куча ошибок...
- Реклама
Re: Програмирование pic на СИ.
почему нет материала? вот отличный самоучитель по которому я сам учился
http://www.labkit.ru/html/C_for_PIC
http://www.labkit.ru/html/C_for_PIC
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
Я с него первого начал:) И асемблер тоже с этого сайта учил. Я в первом посте написал про эту статью.vovik15 писал(а):почему нет материала? вот отличный самоучитель по которому я сам учился
http://www.labkit.ru/html/C_for_PIC
______
Просто я не в понятках. С этой функцией main. Может не быть функции MAIN?
Re: Програмирование pic на СИ.
когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программыmisterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?vovik15 писал(а):когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программыmisterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
Re: Програмирование pic на СИ.
неважно где вы ее расположите
функции вызываються по именам
это не ассемблер
расположение можно изменять в произвольном порядке
функции вызываються по именам
это не ассемблер
расположение можно изменять в произвольном порядке
Re: Програмирование pic на СИ.
А если ты в ассемблерной программе самой первой командой поставишь JMP START, а саму метку START разместишь в произвольном месте? Так и в Си, программа со старта прыгает на метку Мэйн (так правильно произносится) - но это слегка упрощенно. Обычно компиляторы еще выполняют некие стартапные процедуры, которые всегда ассемблерщиков сильно раздражают.misterkuk писал(а):это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?vovik15 писал(а): когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программы
От других функций она почти ничем не отличается. Просто из этой функции команда возврата никогда не выполняется, хотя во многих случаях тип функции объявляется int. Пора начинать читать литературу, потому что на мои ответы сразу последуют другие вопросы. Лучше уж после чтения...
С уважением,
Виктор.
Виктор.
Re: Програмирование pic на СИ.
Вообще то по первой моей ссылке ответ на этот вопрос и на последующие есть.misterkuk писал(а): это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?
Так и в СИ. Я верно пониимаю?
Re: Програмирование pic на СИ.
До main обычно идут дефайны - определение/описание глобальных переменных, констант, функций .misterkuk писал(а):Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?
После main и до главного цикла инициализация переменных/контроллера/перифирии.
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
Вот. Ни в одном источнике я такого не прочитал.dosikus писал(а):До main обычно идут дефайны - определение/описание глобальных переменных, констант, функций .misterkuk писал(а):Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?
После main и до главного цикла инициализация переменных/контроллера/перифирии.
Только конфигурацию в примерах на Labkit.ru прописуют до main
#include <pic.h>
__CONFIG (INTIO & UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS);
void main (void)
{
}
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
А как работать с ЕПРОМ на си?
Re: Програмирование pic на СИ.
а не рановато с эпром? мне кажеться что сначало мигалку надо сделать,кнопочку опросить
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
хотя даvovik15 писал(а):а не рановато с эпром? мне кажеться что сначало мигалку надо сделать,кнопочку опросить
Re: Програмирование pic на СИ.
Ну да , это я уже на более мощные перешел...misterkuk писал(а): Только конфигурацию в примерах на Labkit.ru прописуют до main
Простейшая программа :
Код: Выделить всё
void main (void)
{
while(1)
{
;
}
}-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: Програмирование pic на СИ.
Вот моя первая програма под схему http://www.labkit.ru/html/Assembler_for_PIC?id=356 Компиляция прошла успешно:) Завтра проверю на железе.
Код: Выделить всё
#include <pic.h>
__CONFIG (INTIO & UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS);
#define knopka RB2 // кнопка
void podgot (void); // подготовка МК
void main (void)
{
podgot();
if (knopka = 0)
PORTB = 0b01111111;
}
// === подготовка МК
void podgot (void)
{
TRISA = 0b00000000; // направление работы ножек порта А
TRISB = 0b11111111; // направление работы ножек порта В
CMCON = 0x07; // отключение компараторов
PORTA = 0; // очищаем порт А
PORTB = 0; // очищаем порт Б
RBPU = 1; // подтягивающие R (0-вкл, 1-выкл)
}

