в книгах по Си. да и здесь на форуме немало говорено об этом.alex_ писал(а):где аргументы, с примерами?
вопрос по mikroc
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: вопрос по mikroc
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Re: вопрос по mikroc
Блин разве сложно в 2 словах сказать в чём ошибка, прям как с женщиной общаюсь, на тему: угадай на что я обиделась 
Re: вопрос по mikroc
Это азы языка, которых вы не знаете.
Какие еще аргументы нужны????
В двух словах уже объяснял - в хэдерах не может быть определений могут быть только объявления.
Все сущности только в исходниках. Которые кстати могут быть не только текстовыми файлами но и уже скомпилированными библиотеками.
И вам лучше начать исправлять свои пробелы. Читайте классику и что нибудь из лекций.
Например Линский основы С++ . В первых лекциях доходчиво объясняет основные принципы .
Какие еще аргументы нужны????
В двух словах уже объяснял - в хэдерах не может быть определений могут быть только объявления.
Все сущности только в исходниках. Которые кстати могут быть не только текстовыми файлами но и уже скомпилированными библиотеками.
И вам лучше начать исправлять свои пробелы. Читайте классику и что нибудь из лекций.
Например Линский основы С++ . В первых лекциях доходчиво объясняет основные принципы .
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: вопрос по mikroc
День добрый уважаемые. Хочу задать вопросик по mikroC и, наверное, вообще по PIC. Сам я AVRщик, и привык к хидерам вида ioavr.h, где описаны регистры периферии. Открываю mikroC, создаю проект, начинаю искать хидер по папке среды (как у меня сделано в ИАРе). Не нахожу. Беру какой-то проект из инета (первый раз сел за PIC, прошу учитывать). Пытаюсь компилить, он ругается на какие-то строчки, я их коменчу, таки компилю, запускаю в протеусе - работает. странно. Кароче, правильно ли я понимаю, что имена портов, регистров "вшиты" в mikroC? и хидеров не надо?
Re: вопрос по mikroc
Я пишу в микро Си не только для пиков но и для АВР, поэтому его и выбрал, что на одной программе можно писать под 2 семейства
Например для того чтобы поморгать светодиодом никаких хилдеров не надо, всё подключается автоматом при создании проекта при выборе микроконтроллера, а если хочешь использовать библиотеку, например символьный LCD то просто подключаешь библиотеку во вкладке Library Manager.
Например для того чтобы поморгать светодиодом никаких хилдеров не надо, всё подключается автоматом при создании проекта при выборе микроконтроллера, а если хочешь использовать библиотеку, например символьный LCD то просто подключаешь библиотеку во вкладке Library Manager.
- Реклама
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: вопрос по mikroc
я по той же причине выбрал иар (есть все кроме PIC
)
слушайте, только что игрался в микро с. на конструкцию вида
получаю ошибку. странно, сижу, всмативаюсь в код, а ж в глазах темнеет. потом делаю вот так, поскольку привык к любым поворотам в жизни.
и оно компилится. Они что серьезно? Это где-то настраивается, или такое поведение вшито в среду? если вшито и не настраивается, то я не знаю чем они думают.
Идем дальше. Конструкции вида for(char k=0; k<=8; k++){...} не юзабельны. Где в среде настраивается компилятор, я не нашел (стандарты языка С, С или С++ использую и т.д.). Вроде симпатичная программка, но такого шлака не ожидал.
слушайте, только что игрался в микро с. на конструкцию вида
Код: Выделить всё
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++){...} не юзабельны. Где в среде настраивается компилятор, я не нашел (стандарты языка С, С или С++ использую и т.д.). Вроде симпатичная программка, но такого шлака не ожидал.
Re: вопрос по mikroc
Странно что вы не знаете, что такое стандарты и расширения.Ярослав555 писал(а): Идем дальше. Конструкции вида for(char k=0; k<=8; k++){...} не юзабельны. Где в среде настраивается компилятор, я не нашел (стандарты языка С, С или С++ использую и т.д.). Вроде симпатичная программка, но такого шлака не ожидал.
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: вопрос по mikroc
Я как раз догадался что это связано с расширениями языка. Какое именно это расширение или стандарт, меня абсолютно не интересует. У меня даже нет претензий что прога что-то не поддерживает. Но! Схерали, извините, она пишет ошибку что у меня скобочка не там, если проблема в том, что ей не нравится что я объявил переменную не там где надо?scorpi_0n писал(а):Странно что вы не знаете, что такое стандарты и расширения.
такс, качаю MP Lab (не зря мне микро с, во времена старта на аврках, не приглянулся).
Re: вопрос по mikroc
Кстати да, замечал такое дело: сначала идёт описание переменных а потом уже присвоение значений регистрам. Если пытаешься объявить переменную в середине функции то он будет сильно ругаться. Я обычно глобальные переменные объявляю до main, а настройка портов идёт уже в самом теле main, тогда проблем не возникает.
Кстати в MikroC есть куча рабочих примеров, почти для всех имеющихся встроенных библиотек, очень удобно для стартапа
Кстати в MikroC есть куча рабочих примеров, почти для всех имеющихся встроенных библиотек, очень удобно для стартапа
Re: вопрос по mikroc
"Работая", а точней играясь с микроС , вы не изучаете С как таковой, а страдаете х*""ней. Ибо , как было уже не раз озвучено , микроС компилятор языка внешне похожего на С , но не С.
Добавлено after 4 minutes 33 seconds:
Переменные должны быть определены только в начале блока, а не там где вам прихотнулось.
Добавлено after 4 minutes 33 seconds:
Приучайте себя к порядку, а не к барсико подобным выходкам.Ярослав555 писал(а):Но! Схерали, извините, она пишет ошибку что у меня скобочка не там, если проблема в том, что ей не нравится что я объявил переменную не там где надо?
Переменные должны быть определены только в начале блока, а не там где вам прихотнулось.
Re: вопрос по mikroc
Внесу свою лепту: конечный - итог это готовое устройство, а на чём написано это устройство на С на псевдо С это никому не интересно, если устройство работает как надо, то заказчик готов заплатить за него деньги, и ему наплевать на чём оно было написано.

Вот тут вы правы абсолютноdosikus писал(а): Приучайте себя к порядку, а не к барсико подобным выходкам.
Переменные должны быть определены только в начале блока, а не там где вам прихотнулось.
Re: вопрос по mikroc
Да, такова нынешняя тенденция -сляпать абыкакработало и побыстрей втюхать. Однако все это чревато, во первых из-за закрытых либ протестировать полностью устройство вам не удастся , во вторых время подобных ляповатых "разработчиков" заканчивается- заказчику уже не надо абыкак, ему нужны гарантии . А абыкаки их дать не могут...alex_ писал(а):Внесу свою лепту: конечный - итог это готовое устройство, а на чём написано это устройство на С на псевдо С это никому не интересно, если устройство работает как надо, то заказчик готов заплатить за него деньги, и ему наплевать на чём оно было написано.
Re: вопрос по mikroc
Ты не поверишь, но все мои проекты работают как надо и уже не первый год, так что выражение "абы как" здесь не к месту. А накосячить в коде можно на любой программе и на любом языке, это зависит от рук пишущего.
Re: вопрос по mikroc
А вот такие заявления слышал неоднократно. Причем PIC при этом запитан от 9В и тактируется от резонатора на 25MHz. При этом ещё добавляют: "На разных моделях PIC", и перечисляют: "PIC16F84, PIC16F628 ну и на многих других"alex_ писал(а):Ты не поверишь, но все мои проекты работают как надо и уже не первый год...
Так что про "не первый год" лично мне как-то не очень верится. Или-же у Вас какие-нибудь китайские годы ( про китайские ватты многие, наверное, слышали ), или-же уж совсем простые устройства, в которых ломаться просто нечему.alex_ писал(а): ...Если пытаешься объявить переменную в середине функции то он будет сильно ругаться...
Re: вопрос по mikroc
Итак начнём:
PS: тему можно закрывать, так как кроме флуда и нравоучений в ней ничего полезного нет.
С уважением alex_
- во первых: тема данного форума называется - "вопрос по mikroc" только mikroc здесь похоже никому не интересен, а собрались люди которых хлебом не корми, тянет на нравоучения. Вообще то форум нужен для того чтобы помочь товарищу советом, а не слать его со всеми вопросами на 6 букв(Google).
- во вторых: какой бы не был язык си, он существует в разный интерпритациях: mikroc, MP Lab, Borland C++Builder, AVR Studio. Во всех есть свои тонкости, и если что то работает в одном не факт что будет работать в другом, поскольку синтаксис различается.
- в третьих: То что мои заказчики довольны это факт, а то что там думают: Хилари, Порошенко, Псаки и все остальные мне на них глубоко . . . не перед ними я отчитывался.
- и напоследок: никто мне не указ: как писать программы, как держать паяльник и с кем спать.
PS: тему можно закрывать, так как кроме флуда и нравоучений в ней ничего полезного нет.
С уважением alex_
Re: вопрос по mikroc
Напишу по теме
.
Если, например, я хочу хранить в статическом массиве некие данные (меню) и в том числе адрес переменной, в которой хранятся данные для очередного пункта меню, то... нужно использовать указатель? Но MikroC против такого внутри статического массива.
Если использовать директиву абсолют для переменной (а в массиве хранить число - как указатель), то... компилятор не обращает внимания что регистр занят мной и пихает туда другие переменные, так что видимо придется самому всю память размечать?
Решил вопрос так: храню порядковый номер в статическом массиве для массива переменных и для вычисления тратится много памяти.
Есть ли более оптимальное решение?
Если, например, я хочу хранить в статическом массиве некие данные (меню) и в том числе адрес переменной, в которой хранятся данные для очередного пункта меню, то... нужно использовать указатель? Но MikroC против такого внутри статического массива.
Если использовать директиву абсолют для переменной (а в массиве хранить число - как указатель), то... компилятор не обращает внимания что регистр занят мной и пихает туда другие переменные, так что видимо придется самому всю память размечать?
Решил вопрос так: храню порядковый номер в статическом массиве для массива переменных и для вычисления тратится много памяти.
Есть ли более оптимальное решение?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: вопрос по mikroc
может быть вы не правильно это делаете?ds3ds3 писал(а):Но MikroC против такого внутри статического массива.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: вопрос по mikroc
Не могли бы вы написать как правильно?
И еще как правильно изменить с помощью указателя старший байт двухбайтовой переменной, вот так
*((char*)&data_unsiged_int + 1)
выглядит как-то некрасиво...
И еще как правильно изменить с помощью указателя старший байт двухбайтовой переменной, вот так
*((char*)&data_unsiged_int + 1)
выглядит как-то некрасиво...
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: вопрос по mikroc
во-первых, как вы задаете значение указателя в статическом массиве?
во-вторых, как вы сам элемент массива описали?
как правильно - я не могу написать, потому как правильных способов может быть несколько. легче указать на ваши ошибки, если таковые реально есть.
во-вторых, как вы сам элемент массива описали?
как правильно - я не могу написать, потому как правильных способов может быть несколько. легче указать на ваши ошибки, если таковые реально есть.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: вопрос по mikroc
1 )Вот так не работает.
char a = 10;
unsigned int arr = {1 , &a};
p1 = *arr[1];
А если попробывать
p1 = *((char*)arr[1])
то, кстати, работает, но как правильно?
2) А вот другой вопрос: как правильно изменить с помощью указателя старший байт двухбайтовой переменной, вот так
*((char*)&data_unsiged_int + 1)
допустимо ли писать?
3) Директива абсолют может ли работать совместно с разметкой ОП компилятора?
char a = 10;
unsigned int arr = {1 , &a};
p1 = *arr[1];
А если попробывать
p1 = *((char*)arr[1])
то, кстати, работает, но как правильно?
2) А вот другой вопрос: как правильно изменить с помощью указателя старший байт двухбайтовой переменной, вот так
*((char*)&data_unsiged_int + 1)
допустимо ли писать?
3) Директива абсолют может ли работать совместно с разметкой ОП компилятора?


