Програмирование pic на СИ.

Поклонники продукции Microchip Technology Inc тусуются тут.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Програмирование pic на СИ.

Сообщение misterkuk »

Как оказалось в интернете сложно найти хороший самоучитель на си для PIC. Здесь не плохой материал, но как на меня очень укороченный и не такой детализированный как самоучитель на Асемблере с этогож сайта. Поэтому давайте делиться литературой и раскрывать эту тему.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

dosikus писал(а):http://www.helloworld.ru/texts/comp/lang/c/c6/index.htm

Хороший материал:)
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):Хороший материал:)


Для начинающих самое то.
Далее читай Сида Катцена , ну и классиков Керниган и Ричи.

PS. Шпака можно но сверяясь с фирменным даташитом , куча ошибок...
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение vovik15 »

почему нет материала? вот отличный самоучитель по которому я сам учился
http://www.labkit.ru/html/C_for_PIC
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

vovik15 писал(а):почему нет материала? вот отличный самоучитель по которому я сам учился
http://www.labkit.ru/html/C_for_PIC

Я с него первого начал:) И асемблер тоже с этого сайта учил. Я в первом посте написал про эту статью.
_____
Просто я не в понятках. С этой функцией main. Может не быть функции MAIN?
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение vovik15 »

misterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?

когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программы
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

vovik15 писал(а):
misterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?

когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программы

это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение vovik15 »

неважно где вы ее расположите
функции вызываються по именам
это не ассемблер
расположение можно изменять в произвольном порядке
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: Програмирование pic на СИ.

Сообщение ut1wpr »

misterkuk писал(а):
vovik15 писал(а):
misterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?

когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программы

это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?
А если ты в ассемблерной программе самой первой командой поставишь JMP START, а саму метку START разместишь в произвольном месте? Так и в Си, программа со старта прыгает на метку Мэйн (так правильно произносится) - но это слегка упрощенно. Обычно компиляторы еще выполняют некие стартапные процедуры, которые всегда ассемблерщиков сильно раздражают. :)
От других функций она почти ничем не отличается. Просто из этой функции команда возврата никогда не выполняется, хотя во многих случаях тип функции объявляется int. Пора начинать читать литературу, потому что на мои ответы сразу последуют другие вопросы. Лучше уж после чтения...
С уважением,
Виктор.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?

Вообще то по первой моей ссылке ответ на этот вопрос и на последующие есть.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?


До main обычно идут дефайны - определение/описание глобальных переменных, констант, функций .
После main и до главного цикла инициализация переменных/контроллера/перифирии.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

dosikus писал(а):
misterkuk писал(а):Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?


До main обычно идут дефайны - определение/описание глобальных переменных, констант, функций .
После 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 на СИ.

Сообщение misterkuk »

А как работать с ЕПРОМ на си?
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение vovik15 »

а не рановато с эпром? мне кажеться что сначало мигалку надо сделать,кнопочку опросить
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

vovik15 писал(а):а не рановато с эпром? мне кажеться что сначало мигалку надо сделать,кнопочку опросить

хотя да :oops: сегодня сделаю мигалку:) попробую точней. Мне друг говорил что им в технаре так и несмогли нормально обьяснить про функцию main:)
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):Только конфигурацию в примерах на Labkit.ru прописуют до main



Ну да , это я уже на более мощные перешел... 8)

Простейшая программа :

Код: Выделить всё

void main (void)
{
  while(1)
    {
      ;
     }
}
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

Вот моя первая програма под схему 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-выкл)
}
Ответить

Вернуться в «PIC»