|
Вопрос # 6 530/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Вопрос специфичен и касается компилятора CodeVisionAVR, проблема в следующем, пытаюсь написать свою простенькую библиотеку для МК ATMega8 для управления встроенным таймером. Все пишу вроде бы правильно, но при подключении моего заголовочного файла к программе, компилятор ругается на функции из моего заголовка, что я так понимаю говорит о том что он его не видит почему то.
Кто в курсе прошу помочь разобраться в чем проблема.
Также прикрепляю файл с моей библиотекой.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: SOA (статус: Посетитель)
Вопрос отправлен: 31 марта 2014, 11:58
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 19; последнее сообщение — 4 апреля 2014, 17:34; участников в обсуждении: 4.
|
zvygin1964 (статус: Посетитель), 31 марта 2014, 18:58 [#1]:
Для AVRStudio4 могу попробовать написать на ASM с управлением частотой прерывания таймеров по UART. Ваш код не мой.
Те, кто вам нужны живут тут: easyelectronics.ru
|
|
Толяныч (статус: 4-ый класс), 31 марта 2014, 20:58 [#2]:
Ну и не только. На radiokot.ru , несмотря на несерьезное название форума, очень много толковых ребят, шарящих в этой теме. Я - не из них , для меня CV как-то ни к чему.
|
|
SOA (статус: Посетитель), 31 марта 2014, 22:01 [#3]:
zvygin1964 21урок Еремина,не более:
На CVAVR тоже можно асм использовать, но мне на это заморачиваться не хочется, тем более что цель не в этом, а за ссылку спасибо, зарегистрировался.
Толяныч: опять пишу что про котэ знаю , но всеравно спасибо, собственно я на вашу помощь рассчитывал в этом вопросе , но всеравно спасибо.
|
|
SOA (статус: Посетитель), 31 марта 2014, 23:49 [#4]:
Толяныч:
вы как я понял радиотехникой увлекаетесь, не подскажите случайно какой нибудь хороший мануал по Micro Cap?
|
|
min@y™ (статус: Доктор наук), 1 апреля 2014, 00:31 [#5]:
Цитата (SOA):
но при подключении моего заголовочного файла к программе, компилятор ругается на функции из моего заголовка, что я так понимаю говорит о том что он его не видит почему то.
Текст сообщения об ошибке где? Это ж самое главное в вопросе! Можно скриншот.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Толяныч (статус: 4-ый класс), 1 апреля 2014, 10:29 [#6]:
Для меня это тоже больной вопрос. Я моделировал WorkBench'ом, но это редкостное гуано, imho. Люди-коты с увлечением моделируют Протеусом, мол, и железо моделирует, и работающий МК с программой, но видя на форуме горестные вопли "В Пр. работает, в железе - нет!" или наоборот - обхожусь так, паяльником.
Это если для моделирования. А платы развожу фриварнам Spring Layout.
Так что помочь не смог.
Буду рад видеть Вас на Р-Коте
|
|
Толяныч (статус: 4-ый класс), 3 апреля 2014, 09:54 [#8]:
Этот www.avr123.ru ( в просторечи - ейцвейдрей ) крайне негативно воспринимается форумным сообществом за пихание рекламы своих товаров в тематические форумы. С нескольких форумов его вышибли.
Это так, к слову. Сорри за оффтоп.
|
|
min@y™ (статус: Доктор наук), 3 апреля 2014, 10:26 [#9]:
Цитата (SOA):
сообощения об ошибке как раз таки нет
Тогда это как понимать?
Цитата (SOA):
компилятор ругается на функции из моего заголовка
Цитата (SOA):
просто тело функции, то все работает, а вот если функцию из заголовка вызываю, то никакой реакции.
Отладчик не юзаешь принципиально? Религия не позволяет или сексуальная ориентация?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 3 апреля 2014, 10:37 [#10]:
min@y™:
Все оч просто, если в Mega8Timer0.h сделать коментарии как тут:
//#ifdef _mega8timer0_INCLUDED_
//#define _mega8timer0_INCLUDED_
#pragma used+
void T0Source(unsigned char num);
char ReadT0(void);
void WriteT0(unsigned char count);
void T0EnableInterrupt(void);
void T0DisableInterrupt(void);
#pragma used-
#pragma library mega8timer0.lib
//#endif
то компилятор не ругается, и все компилируется, но функции не воспринимаются .
А если коменты убрать то компилятор начинает бешено ругаться на функцию T0Source(), потому что в коде основной программы она стоит первой как я понимаю.
|
|
SOA (статус: Посетитель), 3 апреля 2014, 10:38 [#11]:
Толяныч:
Учту.
|
|
min@y™ (статус: Доктор наук), 3 апреля 2014, 10:53 [#12]:
Ну какого ж хрена там "#ifdef", когда должон быть палюбому "#ifndef"?!!!1
Если НЕ определено, то определить!
Цитата (SOA):
компилятор начинает бешено ругаться на функцию
ААААААААААААААААА, мама, роди меня обратно!!!111 Да шож за херня-то такая?! Для тупых и прапорщиков ПОВТОРЯЮ!!!!
Цитата (min@y™):
Текст сообщения об ошибке где? Это ж самое главное в вопросе! Можно скриншот.
Текст!!! ТЕЕЕЕЕЕЕЕЕКСТ СООБЩЕНИЯ, БЛ@ТЬ, ОБ ОШИБКЕ!!!! ГДЕЕЕЕЕЕЕЕЕЕЕ??????!!!!!!!!!!11111111
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 3 апреля 2014, 11:30 [#13]:
min@y™: и правда не ifdef а ifndef, тогда компилирует без ошибок, а функции всеравно не видит.
|
|
min@y™ (статус: Доктор наук), 3 апреля 2014, 11:37 [#14]:
Цитата (SOA):
а функции всеравно не видит.
Ну и как ты это определил-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 3 апреля 2014, 17:09 [#15]:
min@y™: технология такова: пишется программа для микроконтроллера в CVAVR, затем эта программа тестится в симуляторе VMLab, где если тупо вставлять не вызов функции, а тело функции, то все работает как задумано, а если пользоваться вызовом функции из изаголовочного файла, то все выглядит так как будто МК запрограммировали ничего не делать.
|
|
SOA (статус: Посетитель), 4 апреля 2014, 00:43 [#16]:
Все ошибку отловил, дело было в Switch case, там каждое case должно было замыкаться break; а у меня их не было, если прописать процедуру вот так, то все работает.
void T0Source(unsigned char num) // Выбираем источник тактирования с делителем частоты
{
switch (num)
{
case 0: TCCR0=0x00; break; // Отключен
case 1: TCCR0=0x01; break; // Частота внутреннего источника тактирования
case 2: TCCR0=0x02; break; // 1/8 внутреннего источника
case 3: TCCR0=0x03; break; // 1/64 внутреннего источника
case 4: TCCR0=0x04; break; // 1/256 внутреннего источника
case 5: TCCR0=0x05; break; // 1/1024 внутреннего источника
case 6: TCCR0=0x06; break; // Внешний источник на ножке T0 с тактированием по спаду сигнала
case 7: TCCR0=0x07; break; // Внешний источник на ножке T0 с тактированием по нарастающей сигнала
}
TCNT0=0x00;
}
Спасибо всем кто участвовал в обсуждении.
|
|
min@y™ (статус: Доктор наук), 4 апреля 2014, 00:52 [#17]:
Я так и думал, что дело в прокладке.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 4 апреля 2014, 16:20 [#18]:
Между стулом и компьютером?
|
|
min@y™ (статус: Доктор наук), 4 апреля 2014, 17:34 [#19]:
Цитата (SOA):
Между стулом и компьютером?
Молодец, догадался.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|