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

 
 
> AVR Studio + WinAVR, совсем глупый вопрос :)
Tigrik
сообщение Feb 2 2007, 01:09
Сообщение #1


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

Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885



Добрый день.
Решил тут, было, сопрягнуть две этих программулины и поморгать светодиодом...

Нашел два почти идентичных примера в сети. Поставил проги, сделал проект в студии, прописал в его свойствах путь до папки с WinAVR'овскими хидерами...

Примеры (привожу только различия, все остальное одинаковое):

1-й:

void main(void)
{
/* enable PD5 as output */
sbi(DDRD,PD5);
while (1) {
/* led on, pin=0 */
cbi(PORTD,PD5);
delay_ms(500);
/* set output to 5V, LED off */
sbi(PORTD,PD5);
delay_ms(500);
}
}

2-й:

void main(void)
{
DDRD |= _BV(PD5); // Установить линию 5 порта D в "1" т.е. на вывод
while(1) { // Бесконечный цикл
PORTD &= ~_BV(PD5); // Сбросить бит PD5 в "0" = 0V, светодиод включен
delay_ms(500); // Ждем 0.5 сек.
PORTD |= _BV(PD5); // Установить бит PD5 в "1" = 5V, светодиод выключен
delay_ms(500); // Ждем 0.5 сек.
}
}


Теперь самое интересное. 2-й и компиляется и билдится и даже моргает в Протеусе. 1-й компиляется, но на билде отваливается с ошибками типа '../test.c:31: undefined reference to 'sbi' '

Т.е. понятно, что он не понимает что такое 'sbi' и 'cbi'... А побороть-та как? smile.gif
Что-то подсказывает, что нужно добавить что-то типа

#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

Но в 1-м примере про это нифига не сказано... более того, в исходнике этого нету, что наводит на мысль, что они сумели как-то обойтись без дефайнов... Так как? smile.gif

Попутно, при попытке отдебажить работающий код в студии та вылетает :// Девайс выставлен AVR Simulator + камень AT90S4433. Что-то не так делаю?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 10:23
Рейтинг@Mail.ru


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