реклама на сайте
подробности

 
 
> Проблема с прерыванием WinAVR+AVRStudio, Выдает ошибку прикомпиляции, хотя в хидере так прописана команда, хелп
Кастусь Рыжов
сообщение Apr 28 2008, 10:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 16-07-07
Из: Беларусь, г.Гомель
Пользователь №: 29 165



Пользуюсь WinAVR20071221 & AVRStudio 4.13.571

GПри компиляции обработки преравания дает ошибку. Только не пойму чегого оно хочет от меня. Кто подскажет. Скриншот прилагается.

код:
sei();//разрешение прерывания

ISR(TWI_vect)
{
PORTC = 0x00;
}

dump= chip;
for (addr=0;addr<0x20;addr++)
{
eeprom_write_byte (addr, dump);
}

goto keypad;
return(0);
}


Ответ компилятора

../ProgramI2C.c:246: error: static declaration of '__vector_17' follows non-static declaration
../ProgramI2C.c:245: error: previous declaration of '__vector_17' was here
../ProgramI2C.c:253: warning: passing argument 1 of 'eeprom_write_byte' makes pointer from integer without a cast
make: *** [ProgramI2C.o] Error 1
Build failed with 2 errors and 1 warnings...
Прикрепленные файлы
Прикрепленный файл  _______.doc ( 121.5 килобайт ) Кол-во скачиваний: 54
 


--------------------
Прибор должен работать не в принципе, а в корпусе!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
Сергей Борщ
сообщение Apr 28 2008, 11:09
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Кастусь Рыжов @ Apr 28 2008, 13:39) *
Кто подскажет. Скриншот прилагается.
Скриншот - это, конечно, хорошо. Но неплохо бы привести весь исходник. Глядя на ваш текст не видно, какие заголовочные файлы включены и начало функции, внутри которой вы пытаетесть описать обработчик. Что вы хотели этим получить, как вы себе представляете это должно работать? В языке С нет возможности описывать одну функцию внутри другой (кроме расширения в компиляторе gcc). Обработчик - самостоятельная функция, как и любая другая. Именно на это и ругается компилятор.

И еще - пользуйте специальную кнопку с символом "#" в форме ввода сообщений для оформления исходников - сделайте так, чтобы другим было удобно помогать вам.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 29 2008, 13:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Кастусь Рыжов - как бы вам это сказать...
wacko.gif
хм.. в обсчем я так понял с вашего скниршота - у вас в мэйне идёт объявление интерупта... smile3046.gif
Отсюда и ошибка компилера...

На счёт варнинга - посмотрите в исходниках - какие аргументы у eeprom_write_byte - я уверен, что вы там ему не те аргументы подсовываете - вот и говорит компилер - ахтунг, собакирен за яйца - клац-клац......

Но в мэйне объявлять интерупты - я такое первый раз вижу...
smile.gif
Go to the top of the page
 
+Quote Post
Кастусь Рыжов
сообщение Apr 30 2008, 09:31
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 16-07-07
Из: Беларусь, г.Гомель
Пользователь №: 29 165



Цитата(Kuzmi4 @ Apr 29 2008, 16:13) *
2 Кастусь Рыжов - как бы вам это сказать...
wacko.gif
хм.. в обсчем я так понял с вашего скниршота - у вас в мэйне идёт объявление интерупта... smile3046.gif
Отсюда и ошибка компилера...

Но в мэйне объявлять интерупты - я такое первый раз вижу...
smile.gif


Спасибо за помощь, до меня дошло, я уже и сам исправился. Описал прерывание не в майне. Просто я самостоятельно учу Си, да еще с аглицким - проблема, поэтому косяков напорол. Приходится методом проб и ошибок. От меня a14.gif за помощь


--------------------
Прибор должен работать не в принципе, а в корпусе!
Go to the top of the page
 
+Quote Post
fpmoleg
сообщение Apr 30 2008, 12:20
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 13-08-07
Пользователь №: 29 751



Попробуй книгу автора Шпак Ю.А. "Программирование на языке С для AVR и PIC микроконтроллеров". В книге используется winAVR версии 2003хххх если проблемы с инглишом. В инете она точно есть.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение May 1 2008, 06:31
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
Описал прерывание не в майне.

а зачем его в main писать?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Кастусь Рыжов
сообщение May 1 2008, 11:46
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 16-07-07
Из: Беларусь, г.Гомель
Пользователь №: 29 165



Цитата(Pyku_He_oTTyda @ May 1 2008, 09:31) *
а зачем его в main писать?


Я ж говорю- исправился, написал не в майне, а до майна. Просто не думал, что ISR(interrupt_vector) применяется как функция, и что ее надо описать до майна. А при работе с TWI аппаратным обязательно ли давать разрешение прерывания от TWI или можно просто контролировать TWCR и TWSR регистры. ? Управлять только TWCR, разрешая прерывание в нем, не касаясь бита прерывания от TWI в SREG
Да,и еще- С какой масимальной частотой будет работать 24С04? Рассчитываю поставить кварц 4МГц и тактовую частоту SCL посчитал по формуле примерно 50кГц, если в TWBR=2 и TWPS1,TWPS0=10 ATmega16.




Цитата(fpmoleg @ Apr 30 2008, 15:20) *
Попробуй книгу автора Шпак Ю.А. "Программирование на языке С для AVR и PIC микроконтроллеров". В книге используется winAVR версии 2003хххх если проблемы с инглишом. В инете она точно есть.


Спасибо за участие в нужде. Книги есть . Евстифеев и Шпак. Просто не все понятно, особенно когда нет знания по Си, приходиться все сразу учить- и AVR и Си.


--------------------
Прибор должен работать не в принципе, а в корпусе!
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 1 2008, 16:23
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Кастусь Рыжов -
на счёт TWI - приложил файлик - в нём я с помощью поллинга с TWI работаю с 24с256 - нормально всё себя чувствует, только проц занят, но тут под задачу - у меня там проц во время работы с TWI ничем не должен был заниматься, потому в интеруптах не было нужды и писалось напрямую с даташита ...
А вообсче есть поиск - http://electronix.ru/forum/index.php?act=A...ost&id=9929 - это я выкладывал, собсно откуда и выдрал приложенный текстовичёк с исходником...
Можно и с помощью интеруптов - в инете поисчите, или на сайте атмела в апнотах - там точно есть...
А если совсем лень - напишите в саппорт - вроде как даже носом тыканут куда смотреть и литературы подкинут..

На счёт максимальной частоты, то тут есть даташит - мосЧная весч - на странице 6 для ST24C04 в табличке 7 есть такой параметр как fSCL (Clock Frequency) и указана максимальная частота в 100 кГц (у меги TWI выше 400кГц не может работать, что вроде как согласуется со спецификацией на I2C - так вроде стандартный TWI - 100кГц, а проапгрейдженый(я так понял по скорости, потому как в протоколе вроде изменений не было) - 400 кГц )..
Я с 24с256 работал на 400 кГц - мега выше не давала , но по даташиту на 5 вольтах она могла до 1МГц принимать клок.. В обсчем предварительно проштудируте даташит по вашим вопросам - там много чего полезного пишут - тучи вопросов отпадут..

В обсчем удачи в изучении..
smile.gif
Прикрепленные файлы
Прикрепленный файл  TWI_polling.txt ( 6.84 килобайт ) Кол-во скачиваний: 71
 
Go to the top of the page
 
+Quote Post
Кастусь Рыжов
сообщение May 3 2008, 12:40
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 16-07-07
Из: Беларусь, г.Гомель
Пользователь №: 29 165



Цитата(Kuzmi4 @ May 1 2008, 19:23) *
2 Кастусь Рыжов -
приложил файлик - в нём я с помощью поллинга с TWI работаю с 24с256 - нормально всё себя чувствует, только проц занят, но тут под задачу - у меня там проц во время работы с TWI ничем не должен был заниматься, потому

А если совсем лень - напишите в саппорт - вроде как даже носом тыканут куда смотреть и литературы подкинут..


В обсчем удачи в изучении..
smile.gif
a14.gif

Премного благодарен, учить хочу, грызу даташиты и Си. Сразу и IAR учу, Словей вы конечно непонятных наговорили-поллинг. Ну всеравно спасибо. А на саппорт в Атмел писать,по русски что ли? А можно вам в личное сообщение кусочек кода кинуть будет, чтоб покритиковали? простите, если офтоп сказал 05.gif


--------------------
Прибор должен работать не в принципе, а в корпусе!
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 3 2008, 18:00
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Кастусь Рыжов - валяйте laughing.gif

Помогу, чем смогу wink.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01451 секунд с 7
ELECTRONIX ©2004-2016