12.12.2012, 00:31
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Делал программу измерения углов и сопряжения с ПЛК.
Всё жизнь писал на АСМ, но арксинус меня сломал.
Перешёл на ССS.
Теперь всё заработало отлично, но столкнулся с невероятным.
Файл .h
#include ‹18F2520.h›
#device adc=16
#FUSES H4 //
#FUSES WDT32
#FUSES WDT //
#FUSES BORV45 //
#FUSES NOLVP //
#FUSES NOXINST //
Такой файл был создан CCS.
И не работает из-за конфиг. битов.
На первый #FUSES WDT, ..... реагирует , на остальные нет.
Но если записать
#FUSES WDT,H4,WDT32,NOLVP,NOXINST//,BORV45
То всё становиться на свои места.
Так пишут вроде во всех книгах, которые изучал.
Похоже на некоторый кофликт версий ССS и MPLAB 8.63.
Пока осталась неясна ситуация с BORV45.
Если поставить вперёд, то тоже ничего не работает.
Но это мелочь.
Глупее ситуацию трудно придумать имеешь рабочую программу
случайно ставишь WDT вперёд H4 и ничего вдруг не работает.
Но это ещё понять надо. Просто не обратил внимание и вроде и не может влиять.
И два дня ушли на эти разборки.
Вопрос сей факт имеет место?
|
|
|
|
12.12.2012, 14:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,124 раз(а) в 5,642 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Несколько раз тоже такое видел. Все решается очень просто: тыкаете правой кнопкой мышки на строчке с #include ‹18F2520.h› и выбираете OpenFile.. (это в среде MPlab) и открываете этот самый 18F2520.h В первых строчках его идут перечисленные валидные фузы. Их и подсматриваете. Насколько я понял, это связано с тем, что на CCS над визардом и хидерами работают разные команды и иногда их версии опережают друг дружку
|
|
|
|
12.12.2012, 15:02
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
И ещё вопрос.
Как понимаете это моя первая программа.
В проект входит 8 файлов.
Если файл один то хххх.h включается в первый файл проекта.
С одним фале в проекте вроде всё нормально.
В остальные я вначале включал 18f2520.h.
Но не работает из-за конфиг. битов.
Такое впечатление что конфиг. биты в этом случае сбрасываются.
Потом в каждый включил хххх.h и в каждом хххх.h записал строку
#FUSES WDT,H4,WDT32,NOLVP,NOXINST/
Как в ССS делать правильно при нескольких файлах проекта?
На этот вопрос я не нашёл ответа ни в документации, ни в примерах.
Хотелось писать сразу правильно.
Как ходят уже вроде понятно, осталось уточнить как сдают.
|
|
|
|
12.12.2012, 17:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
12.12.2012, 17:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Sergey_57
|
И ещё вопрос.
Как понимаете это моя первая программа.
В проект входит 8 файлов.
Если файл один то хххх.h включается в первый файл проекта.
С одним фале в проекте вроде всё нормально.
В остальные я вначале включал 18f2520.h.
Но не работает из-за конфиг. битов.
Такое впечатление что конфиг. биты в этом случае сбрасываются.
Потом в каждый включил хххх.h и в каждом хххх.h записал строку
#FUSES WDT,H4,WDT32,NOLVP,NOXINST/
Как в ССS делать правильно при нескольких файлах проекта?
На этот вопрос я не нашёл ответа ни в документации, ни в примерах.
Хотелось писать сразу правильно.
Как ходят уже вроде понятно, осталось уточнить как сдают.
|
А зачем конфигуратор выносить в хидер? В главном файле прямо и пишите. А остальные хидеры - по вкусу. Только если не хотите плодить дублей, закрывайте хидеры рамками условной трансляции.
Код:
|
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
...
#endif |
Почитайте литературку по модульности, видимости переменных и прочей организаторщине.
Еще вы не сообщили публике, каким образом вы организовали сборку проекта. Инклудами или линкером?
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
12.12.2012, 19:26
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от welcome61
|
Я в свое время также наглотался "ЧУДЕС" от Протеуса и теперь к нему не подхожу.
|
Знакомые сказки...
А на поверку всегда выходит, что руки увы кривые...
__________________
Осторожно , злой кот
|
|
|
|
12.12.2012, 21:02
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от ut1wpr
|
А зачем конфигуратор выносить в хидер? В главном файле прямо и пишите. А остальные хидеры - по вкусу. Только если не хотите плодить дублей, закрывайте хидеры рамками условной трансляции.
Код:
|
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
...
#endif |
Почитайте литературку по модульности, видимости переменных и прочей организаторщине.
Еще вы не сообщили публике, каким образом вы организовали сборку проекта. Инклудами или линкером?
|
Ну я как приличный взял визард CCS и и он мне создал main.h
и запихнул туда конфигурацию. Это что не совсем корректно?
Потом визард MPLAB 8.63 создаю проект и.т.д В нём и работаю
просто уже привык к нему.
Программу уже отладил , но небольшие вопросы остались.
Как раз про модульность у меня ничего нет.
Где почитать ?
Даже и не представлял и не задумывался , что можно Инклудами.
Не буду отрывать ваше время конкретный вопрос.
К примеру 2 файл проекта.среда MPLAB 8.63 + ССS.
Надо указать с чем работать
я вначале включал 18f2520.h.Компиляция идёт. Но не работает из-за конфиг. битов.
Потом в каждый включил main.h и в каждом записал строку
#FUSES WDT,H4,WDT32,NOLVP,NOXINST.
Пробовал Вносить и выносить из файла .h всё нормально.
ПОЧЕМУ В КАЖДОМ ФАЙЛЕ ПРОЕКТА должно быть
после 18f2520.h ( я работаю в 4 файлах с разными портами и выводами) в кажом должно стоять(как вариант в последнем)
после 18f2520.h #FUSES WDT,H4,WDT32,NOLVP,NOXINST.
Что настройки сбрасываются каждый раз после этого файла.
И почему из этого списка выполняется любой первый и всё
#FUSES H4 //
#FUSES WDT32
#FUSES WDT //
#FUSES BORV45 //
#FUSES NOLVP //
#FUSES NOXINST //
Кривизны рук здесь не вижу.
|
|
|
|
13.12.2012, 05:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 11.06.2006
Адрес: 51° 46′ 0″ N, 55° 6′ 0″ E
Сообщений: 1,975
Сказал спасибо: 370
Сказали Спасибо 1,725 раз(а) в 706 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Пример заголовка в основном файле. Подключаю необходимые файлы при
помощи #include
[HTML]#include ‹18F252.H›
#device ADC=10
#fuses Hs, NOWDT, NOPROTECT, NOLVP, NOCPD, NOWRT, PUT, NOWRTD
#use delay(clock=40M, oscillator=10M)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, BITS=
#include ‹stdlib.h›
#include ‹math.h›
#include ‹Indicat_7.c›
#include ‹Driver_MP3.c›[/HTML]
|
|
|
Сказали "Спасибо" welcome61
|
|
|
13.12.2012, 09:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от welcome61
|
Пример заголовка в основном файле. Подключаю необходимые файлы при
помощи #include
[HTML]#include ‹18F252.H›
#device ADC=10
#fuses Hs, NOWDT, NOPROTECT, NOLVP, NOCPD, NOWRT, PUT, NOWRTD
#use delay(clock=40M, oscillator=10M)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, BITS=![Горд собой](images/smilies/icon_dovl.gif)
#include ‹stdlib.h›
#include ‹math.h›
#include ‹Indicat_7.c›
#include ‹Driver_MP3.c›[/HTML]
|
Сие действо означает, что у вас в проекте не несколько файлов, а всего лишь один исходный файл. Все остальные просто включаются. Линкер отдыхает.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
13.12.2012, 10:36
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Большое спасибо.
Сразу отпали все вопросы.
Даже можно Инклудами.
Всё очень логично и просто.
Это конструкция просто не работает в данной версии с линкером.
А вот с инклудами на проверить.
#FUSES H4 //
#FUSES WDT32
#FUSES WDT //
#FUSES BORV45 //
#FUSES NOLVP //
#FUSES NOXINST //
Сталкивался с таким много раз.
Особенно запомнилось с ПО на панели оператора KINCO.
В фирме дали ПО. При вводе через экранный интерфейс вводит
на одно нажатие по 2 цифры.
Это у них стандартная подпрограмма.
Узнал и про кривые руки и много чего интересного про себя в культурной форме.
Пока не периписал и не ввёл задержки толку не было.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:13.
|
|