Пн янв 24, 2011 23:18:24
Пн янв 24, 2011 23:26:14
Пн янв 24, 2011 23:44:12
Вт янв 25, 2011 00:41:15
dosikus писал(а):http://www.helloworld.ru/texts/comp/lang/c/c6/index.htm
Вт янв 25, 2011 19:13:23
misterkuk писал(а):Хороший материал:)
Ср янв 26, 2011 12:32:48
Ср янв 26, 2011 12:49:23
vovik15 писал(а):почему нет материала? вот отличный самоучитель по которому я сам учился
http://www.labkit.ru/html/C_for_PIC
Ср янв 26, 2011 15:51:20
misterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
Ср янв 26, 2011 15:56:14
vovik15 писал(а):misterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программы
Ср янв 26, 2011 16:07:11
Ср янв 26, 2011 17:53:04
А если ты в ассемблерной программе самой первой командой поставишь JMP START, а саму метку START разместишь в произвольном месте? Так и в Си, программа со старта прыгает на метку Мэйн (так правильно произносится) - но это слегка упрощенно. Обычно компиляторы еще выполняют некие стартапные процедуры, которые всегда ассемблерщиков сильно раздражают.misterkuk писал(а):vovik15 писал(а):misterkuk писал(а):И мой первый вопрос.
Функция main как я понял самая главная. Но почему она может ставится и в середине текста программы? Если провести с асемблером параллель, то с чем можно сравнить?
когда программа начинает компилироваться,компилятор сразу начинает искать функцию майн ,независимо от того где она находиться по тексту программы
это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?
Ср янв 26, 2011 20:50:04
misterkuk писал(а):это я понял.но не пойму почему именно эту функцию. если я расположу ее в середине, то как тогда будет работать программа? какое ее назначение? и чем она отличается от других функции?
Ср янв 26, 2011 21:45:37
Ср янв 26, 2011 22:10:05
misterkuk писал(а):Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?
Ср янв 26, 2011 22:38:39
dosikus писал(а):misterkuk писал(а):Кажысь понял. Как в Асемблере мы до "СТАРТ" прописуем подготовительные моменты. а потом начинаем исполнять программу.
Так и в СИ. Я верно пониимаю?
До main обычно идут дефайны - определение/описание глобальных переменных, констант, функций .
После main и до главного цикла инициализация переменных/контроллера/перифирии.
Чт янв 27, 2011 13:38:45
Чт янв 27, 2011 15:51:01
Чт янв 27, 2011 16:40:53
vovik15 писал(а):а не рановато с эпром? мне кажеться что сначало мигалку надо сделать,кнопочку опросить
Чт янв 27, 2011 20:13:08
misterkuk писал(а):Только конфигурацию в примерах на Labkit.ru прописуют до main
void main (void)
{
while(1)
{
;
}
}
Пт янв 28, 2011 00:19:52
#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-выкл)
}