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

Ликбез по С для микроконтроллеров PIC

1 37 64

Vladikas: Эти среды какие-то не привязанные к железу вообще.

Ну да, типа универсальные. В этом и заключается их прелесть, для разработки под любую платформу используется одна и та же среда. Пишешь makefile и вперёд.

А что такого есть в MPLAB, чего нет в эклипсе или Code::Blocks? Симулятор разве что? Ну так симулятор можно и отдельно запускать, не так уж часто он требуется.

 

Ясно. Хреновый я сишник. Ничё, научусь

 

Maksim_86: Самому писать в ЦЦС заголовки не обязательно. Запускаем ЦЦС
меню view->Special registers->registers. Там выбираем нужный нам девайс и нажимаем Make Include File.Byte prefix & Bit prefix лучше убрать, ато все биты и байты будут с приставкой типа MCU_TRISA. И вы бираем путь, где будет наш хеадер создан. Вуаля, заголовочный файл готов.

На это никто не отреагировал, получилось или нет. У меня вот не совсем получилось. Файл-то я сделал, а когда подключил его к программе, компилятор стал грязно ругаться.

Подключал так
#include <16F873.h>
#include <PIC16F873A_registers.h>

*** Error 86 "D:\1\ULevel\PIC16F873A_registers.h" Line 29(11,12): Expecting =
*** Error 43 "D:\1\ULevel\PIC16F873A_registers.h" Line 29(17,18): Expecting a declaration
*** Error 48 "D:\1\ULevel\PIC16F873A_registers.h" Line 29(19,25): Expecting a (

Вот 29 строчка
#bit GO/DONE = ADCON0.2

Что я не так делаю?
------------
Да, так он ругается на очень многие строчки.

 

Никто не подскажет?

 

Vladikas: #bit GO/DONE = ADCON0.2

Мне кажется, ему слеш не нравится. Конкретнее не скажу, у меня нет этого компилятора.

 

Так он же почти по-русски пишет, что расчитывал увидеть на этих позициях.
Вот и удивлён, что не обнаружил...

 

Я понимаю, что синтаксис ошибочный. Вопрос сводится к тому, почему он ошибочный? Ведь программа делает хеадер для себя и потом его понять не может...

 

При вводе он подсказывает "буквы", а при компиляции анализирует логику текста.

 

Vladikas: Я понимаю, что синтаксис ошибочный. Вопрос сводится к тому, почему он ошибочный? Ведь программа делает хеадер для себя и потом его понять не может...

Она его делает из чего-то. Типа файл с описанием регистров. И в этом файле встречаются недопустимые имена регистров. Видимо изначально этот файл для чего-то другого...

 

В принципе, из-за этого останавливаться не стоит, можно просто руками поправить имена и спокойно работать дальше. Ведь это разовая процедура, генерация этого файла. Потом его можно использовать во всех проектах.