| 
| 
 | Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |