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

Поясните по Си

1 6 8

Я писал (пришлось , хотя и против такого насилия), как и сказали что-то типа С++, там основной упор на библиотеки...что убило, даташит на МК вообще не нужен, ну и соответственно минус...тормознутость всей этой сборки.

 

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

 

http://robocraft.ru/files/books/arduino_notebook_rus_v1-1.pdf

 

Swamp_Dok: Мы вот в универе начали ПРОЛОГ изучать...

PROLOG - это для постановки мышления, не для практики.

 

poruchik: http://robocraft.ru/files/books/arduino_notebook_rus_v1-1.pdf

Да, эту как раз скачал пару дней как ещё не вник в суть. Видимо самая толковая "инструкция". Спасип.

 

добрых дней.
Эпопея продолжается. тема ( http://xml.pro-radio.ru/urbanism/12980/ )
при изготовлении платы "отзеркалил" кнопки. могу, конечно, порезать плату, но не хочется. благо есть исходник на C.
Опять же повторюсь, что с программированием не дружен, а тем более с С.
Попробовал, все же сам. Посмотрел листинг (или как это там называется), нашел функцию, обрабатывающую кнопки. Подумал, что сам сумею. Скачал "PIC C Compiler". Загрузил в него исходник, подредактировал, запустил компиляцию. Как и подозревал- с наскока не получилось.

Без правки- аналогично. (что означают сообщения компилятора, я понял.)
Кто - нибудь поможет? Чтобы, понапрасну, не тревожить в другой раз подскажите, почему вылезает ошибка, как это делают правильно и в какой программе? Может это не тот компилятор?
оригинал- в аттаче ( http://www.sendspace.com/file/rts2pa )
Спасибо.

 

На строке 293 замените

comparer_Iset_Ilue()

на
void comparer_Iset_Ilue(void)

Причина ошибки в том, что на строке 48 функция объявлена как

void comparer_Iset_Ilue(void)

а определение на строке 293 не соответствует объявлению,
оно эквивалентно
int comparer_Iset_Ilue(...)

Компилятор (а скорее линкер) оказался шибко умным и выдал ошибку.
Некоторые компиляторы такое нормально проглатывают.

 

boo2
премного благодарен. Получилось. Вы сделали мне неплохой подарок на день рождения. Спасибо.

 

Вопрос - как описать массив переменных ?

Второй - как описать такой-же массив с однозначным заданием адреса его расположения в ОЗУ микроконтроллера, либо функцию возвращающую таковой (физический адрес в памяти данного элемента массива)

Как сдвинуть на 1 бит вправо или влево таковой массив ? (максимально быстро само собой) Массив большой от 4 кБ

 

Wladimir_TS: Вопрос - как описать массив переменных ?

Примерно так:

int my_array[4096];

Wladimir_TS: Второй - как описать такой-же массив с однозначным заданием адреса его расположения в ОЗУ микроконтроллера

В разных компиляторах способы такого описания могут немного отличаться.

Wladimir_TS: либо функцию возвращающую таковой (физический адрес в памяти данного элемента массива)

Функция как таковая тут не нужна. Делается так:

int * p; // указатель на нечто типа int ()

p=my_array; // указателю присваивается значение адреса первого элемента массива
// или
p=&my_array[13] // указателю присваивается значение адреса 13-ого элемента массива

Wladimir_TS: Как сдвинуть на 1 бит вправо или влево таковой массив ?

for (i=0; i < 4095; i++) // цикл для прохода по массиву (тут вместо < должен быть зачок "меньше")
*p++=1; // сдвиг каждого элемента массива влево