вопрос по mikroc

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: вопрос по mikroc

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: вопрос по mikroc

Сообщение alex_ »

Блин разве сложно в 2 словах сказать в чём ошибка, прям как с женщиной общаюсь, на тему: угадай на что я обиделась :(
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: вопрос по mikroc

Сообщение dosikus »

Это азы языка, которых вы не знаете.
Какие еще аргументы нужны????

В двух словах уже объяснял - в хэдерах не может быть определений могут быть только объявления.
Все сущности только в исходниках. Которые кстати могут быть не только текстовыми файлами но и уже скомпилированными библиотеками.

И вам лучше начать исправлять свои пробелы. Читайте классику и что нибудь из лекций.
Например Линский основы С++ . В первых лекциях доходчиво объясняет основные принципы .
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: вопрос по mikroc

Сообщение Ярослав555 »

День добрый уважаемые. Хочу задать вопросик по mikroC и, наверное, вообще по PIC. Сам я AVRщик, и привык к хидерам вида ioavr.h, где описаны регистры периферии. Открываю mikroC, создаю проект, начинаю искать хидер по папке среды (как у меня сделано в ИАРе). Не нахожу. Беру какой-то проект из инета (первый раз сел за PIC, прошу учитывать). Пытаюсь компилить, он ругается на какие-то строчки, я их коменчу, таки компилю, запускаю в протеусе - работает. странно. Кароче, правильно ли я понимаю, что имена портов, регистров "вшиты" в mikroC? и хидеров не надо?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: вопрос по mikroc

Сообщение alex_ »

Я пишу в микро Си не только для пиков но и для АВР, поэтому его и выбрал, что на одной программе можно писать под 2 семейства :)
Например для того чтобы поморгать светодиодом никаких хилдеров не надо, всё подключается автоматом при создании проекта при выборе микроконтроллера, а если хочешь использовать библиотеку, например символьный LCD то просто подключаешь библиотеку во вкладке Library Manager.
Реклама
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: вопрос по mikroc

Сообщение Ярослав555 »

я по той же причине выбрал иар (есть все кроме PIC :))) )
слушайте, только что игрался в микро с. на конструкцию вида

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

char digs[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
portc=0; //to clear port
portd=0;
trisc=0; //as output
trisd=0; //as output
int i;
получаю ошибку. странно, сижу, всмативаюсь в код, а ж в глазах темнеет. потом делаю вот так, поскольку привык к любым поворотам в жизни.

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

char digs[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int i;
portc=0; //to clear port
portd=0;
trisc=0; //as output
trisd=0; //as output
и оно компилится. Они что серьезно? Это где-то настраивается, или такое поведение вшито в среду? если вшито и не настраивается, то я не знаю чем они думают.
Идем дальше. Конструкции вида for(char k=0; k<=8; k++){...} не юзабельны. Где в среде настраивается компилятор, я не нашел (стандарты языка С, С или С++ использую и т.д.). Вроде симпатичная программка, но такого шлака не ожидал.
Реклама
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: вопрос по mikroc

Сообщение scorpi_0n »

Ярослав555 писал(а): Идем дальше. Конструкции вида for(char k=0; k<=8; k++){...} не юзабельны. Где в среде настраивается компилятор, я не нашел (стандарты языка С, С или С++ использую и т.д.). Вроде симпатичная программка, но такого шлака не ожидал.
Странно что вы не знаете, что такое стандарты и расширения.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: вопрос по mikroc

Сообщение Ярослав555 »

scorpi_0n писал(а):Странно что вы не знаете, что такое стандарты и расширения.
Я как раз догадался что это связано с расширениями языка. Какое именно это расширение или стандарт, меня абсолютно не интересует. У меня даже нет претензий что прога что-то не поддерживает. Но! Схерали, извините, она пишет ошибку что у меня скобочка не там, если проблема в том, что ей не нравится что я объявил переменную не там где надо?
такс, качаю MP Lab (не зря мне микро с, во времена старта на аврках, не приглянулся).
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: вопрос по mikroc

Сообщение alex_ »

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

Re: вопрос по mikroc

Сообщение dosikus »

"Работая", а точней играясь с микроС , вы не изучаете С как таковой, а страдаете х*""ней. Ибо , как было уже не раз озвучено , микроС компилятор языка внешне похожего на С , но не С.

Добавлено after 4 minutes 33 seconds:
Ярослав555 писал(а):Но! Схерали, извините, она пишет ошибку что у меня скобочка не там, если проблема в том, что ей не нравится что я объявил переменную не там где надо?
Приучайте себя к порядку, а не к барсико подобным выходкам.
Переменные должны быть определены только в начале блока, а не там где вам прихотнулось.
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: вопрос по mikroc

Сообщение alex_ »

Внесу свою лепту: конечный - итог это готовое устройство, а на чём написано это устройство на С на псевдо С это никому не интересно, если устройство работает как надо, то заказчик готов заплатить за него деньги, и ему наплевать на чём оно было написано.
dosikus писал(а): Приучайте себя к порядку, а не к барсико подобным выходкам.
Переменные должны быть определены только в начале блока, а не там где вам прихотнулось.
Вот тут вы правы абсолютно :beer:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: вопрос по mikroc

Сообщение dosikus »

alex_ писал(а):Внесу свою лепту: конечный - итог это готовое устройство, а на чём написано это устройство на С на псевдо С это никому не интересно, если устройство работает как надо, то заказчик готов заплатить за него деньги, и ему наплевать на чём оно было написано.
Да, такова нынешняя тенденция -сляпать абыкакработало и побыстрей втюхать. Однако все это чревато, во первых из-за закрытых либ протестировать полностью устройство вам не удастся , во вторых время подобных ляповатых "разработчиков" заканчивается- заказчику уже не надо абыкак, ему нужны гарантии . А абыкаки их дать не могут...
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: вопрос по mikroc

Сообщение alex_ »

Ты не поверишь, но все мои проекты работают как надо и уже не первый год, так что выражение "абы как" здесь не к месту. А накосячить в коде можно на любой программе и на любом языке, это зависит от рук пишущего.
Аватара пользователя
shindax
Потрогал лапой паяльник
Сообщения: 378
Зарегистрирован: Сб сен 19, 2009 07:02:19

Re: вопрос по mikroc

Сообщение shindax »

alex_ писал(а):Ты не поверишь, но все мои проекты работают как надо и уже не первый год...
А вот такие заявления слышал неоднократно. Причем PIC при этом запитан от 9В и тактируется от резонатора на 25MHz. При этом ещё добавляют: "На разных моделях PIC", и перечисляют: "PIC16F84, PIC16F628 ну и на многих других" :D Вам раз пять предлагали почитать наконец нормальную литературу по Си, но Вы по-прежнему недоумеваете :
alex_ писал(а): ...Если пытаешься объявить переменную в середине функции то он будет сильно ругаться...
Так что про "не первый год" лично мне как-то не очень верится. Или-же у Вас какие-нибудь китайские годы ( про китайские ватты многие, наверное, слышали ), или-же уж совсем простые устройства, в которых ломаться просто нечему. :) Захотите опровергнуть, покажите хотя-бы пару Ваших разработок, которые работают годами. :)
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: вопрос по mikroc

Сообщение alex_ »

Итак начнём:
  • во первых: тема данного форума называется - "вопрос по mikroc" только mikroc здесь похоже никому не интересен, а собрались люди которых хлебом не корми, тянет на нравоучения. Вообще то форум нужен для того чтобы помочь товарищу советом, а не слать его со всеми вопросами на 6 букв(Google).
  • во вторых: какой бы не был язык си, он существует в разный интерпритациях: mikroc, MP Lab, Borland C++Builder, AVR Studio. Во всех есть свои тонкости, и если что то работает в одном не факт что будет работать в другом, поскольку синтаксис различается.
  • в третьих: То что мои заказчики довольны это факт, а то что там думают: Хилари, Порошенко, Псаки и все остальные мне на них глубоко . . . не перед ними я отчитывался.
  • и напоследок: никто мне не указ: как писать программы, как держать паяльник и с кем спать.
Поэтому процитирую нашего уважаемого модератора Alex'a: "Я мненью вашему вращенье придавал, а осью был - мой детородный орган."

PS: тему можно закрывать, так как кроме флуда и нравоучений в ней ничего полезного нет.

С уважением alex_ :)))
ds3ds3
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср ноя 21, 2012 02:55:37

Re: вопрос по mikroc

Сообщение ds3ds3 »

Напишу по теме :).
Если, например, я хочу хранить в статическом массиве некие данные (меню) и в том числе адрес переменной, в которой хранятся данные для очередного пункта меню, то... нужно использовать указатель? Но MikroC против такого внутри статического массива.
Если использовать директиву абсолют для переменной (а в массиве хранить число - как указатель), то... компилятор не обращает внимания что регистр занят мной и пихает туда другие переменные, так что видимо придется самому всю память размечать?
Решил вопрос так: храню порядковый номер в статическом массиве для массива переменных и для вычисления тратится много памяти.
Есть ли более оптимальное решение?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: вопрос по mikroc

Сообщение ARV »

ds3ds3 писал(а):Но MikroC против такого внутри статического массива.
может быть вы не правильно это делаете?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
ds3ds3
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср ноя 21, 2012 02:55:37

Re: вопрос по mikroc

Сообщение ds3ds3 »

Не могли бы вы написать как правильно?
И еще как правильно изменить с помощью указателя старший байт двухбайтовой переменной, вот так
*((char*)&data_unsiged_int + 1)
выглядит как-то некрасиво...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: вопрос по mikroc

Сообщение ARV »

во-первых, как вы задаете значение указателя в статическом массиве?
во-вторых, как вы сам элемент массива описали?
как правильно - я не могу написать, потому как правильных способов может быть несколько. легче указать на ваши ошибки, если таковые реально есть.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
ds3ds3
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср ноя 21, 2012 02:55:37

Re: вопрос по mikroc

Сообщение ds3ds3 »

1 )Вот так не работает.
char a = 10;
unsigned int arr = {1 , &a};
p1 = *arr[1];

А если попробывать
p1 = *((char*)arr[1])
то, кстати, работает, но как правильно?

2) А вот другой вопрос: как правильно изменить с помощью указателя старший байт двухбайтовой переменной, вот так
*((char*)&data_unsiged_int + 1)
допустимо ли писать?

3) Директива абсолют может ли работать совместно с разметкой ОП компилятора?
Ответить

Вернуться в «Разные вопросы по МК»