программа написанная в AVR Studio na CVAVR
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: программа написанная в AVR Studio na CVAVR
Ну понятно будет жаловаться! Если переменная локальная и нет объявления, но при этом всем происходит к ней обращение, соответственно читать оттуда нечего,то может и не работать ваша прога.
Вы ведь объявление переменной сделали в главном блоке (main) а она скорее всего должна быть глобальной.
Может поэтому не пишет теперь ошибку линкера, как раньше было? Уберите структуру из main, пусть она будет как и была в дополнительном модуле rc5.h
По мне так лучше решить синтаксическую ошибку, чем собрать неработающую программу.
Вы ведь объявление переменной сделали в главном блоке (main) а она скорее всего должна быть глобальной.
Может поэтому не пишет теперь ошибку линкера, как раньше было? Уберите структуру из main, пусть она будет как и была в дополнительном модуле rc5.h
По мне так лучше решить синтаксическую ошибку, чем собрать неработающую программу.
- Реклама
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: программа написанная в AVR Studio na CVAVR
Поправил "грамматику и орфографию", не вчитываясь в текст.
- Вложения
-
- remote.zip
- (88.27 КБ) 176 скачиваний
Re: программа написанная в AVR Studio na CVAVR
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: программа написанная в AVR Studio na CVAVR
не, там созданы 2 структуры rc5 -одна в мейне, вторая в файле rc5.c
поскольку ни одна не вынесена екстерном в заголовочный файл, конфликт не возник.
Для 2 файлов можно как бы этот предохранитель и не ставить, но здесь дело почерка, я поставил
поскольку ни одна не вынесена екстерном в заголовочный файл, конфликт не возник.
Для 2 файлов можно как бы этот предохранитель и не ставить, но здесь дело почерка, я поставил
Re: программа написанная в AVR Studio na CVAVR
Для 2 файлов можно как бы этот предохранитель и не ставить
Хе-хе, это сейчас два файла. А что будет потом - никто не знает.
я поставил
И правильно сделали.

Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Реклама
Re: программа написанная в AVR Studio na CVAVR
ух ты вот это сюрприз!! вставил ваш скомпиленый hex в протеус и всё работает!!urry писал(а):Поправил "грамматику и орфографию", не вчитываясь в текст.
спасибо огромное
вот только у меня наверно что то с компилятором? сам перекомпильть проект не могу, undefined member набросало 12 ошибок http://s2.postimg.cc/xu17z1oxl/Clipboard01.jpg- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: программа написанная в AVR Studio na CVAVR
моя версия кв 2.4.4а - попробуй пересобрать проект с 0.
Re: программа написанная в AVR Studio na CVAVR
urry писал(а):моя версия кв 2.4.4а - попробуй пересобрать проект с 0.
какой то глюк в компиляторе был, перезаписал другую версию и всё ок стало, большое вам спасибо за помощь
Re: программа написанная в AVR Studio na CVAVR
Здравствуйте!
Подскажите, пожалуйста, где в коде прописывается к какой ноге подключен выход ИК-приемника.
Хочу приемник перенести с вывода PB0 на PB7. Не могу найти, ткните пальцем, пожалуйста...
Подскажите, пожалуйста, где в коде прописывается к какой ноге подключен выход ИК-приемника.
Хочу приемник перенести с вывода PB0 на PB7. Не могу найти, ткните пальцем, пожалуйста...
Re: программа написанная в AVR Studio na CVAVR
С этим вопросом разобрался...Valaster писал(а):Здравствуйте!
Подскажите, пожалуйста, где в коде прописывается к какой ноге подключен выход ИК-приемника.
Хочу приемник перенести с вывода PB0 на PB7. Не могу найти, ткните пальцем, пожалуйста...
А как сделать чтобы гирлянду можно было потушить и включить кнопкой Power. При включении должна вновь работать программа, которая была выбрана до выключения. И может быть, дополнить функционал управлением скоростью переключения, т.е. ускорить индикацию или замедлить.
Re: программа написанная в AVR Studio na CVAVR
Прошу помощи у корифеев!
Задача заключается в том, чтобы кнопкой power потушить гирлянду, а повторным нажатием на power включить гирлянду с того же case, на котором она была выключена?
Чтобы программа также продолжила работу после отключения питания контроллера.
Что я не так делаю? Срабатывание от кнопки POWER не постоянное (иногда надо трижды нажать, чтобы произошло переключение программы или вызов программы после отключения питания). И не удается включить последнюю исполняемую программу после подачи питания (т.е. не задействую кнопку POWER, подать питание и сразу включилась бы последняя исполняемая программа).
Задача заключается в том, чтобы кнопкой power потушить гирлянду, а повторным нажатием на power включить гирлянду с того же case, на котором она была выключена?
Чтобы программа также продолжила работу после отключения питания контроллера.
Что я не так делаю? Срабатывание от кнопки POWER не постоянное (иногда надо трижды нажать, чтобы произошло переключение программы или вызов программы после отключения питания). И не удается включить последнюю исполняемую программу после подачи питания (т.е. не задействую кнопку POWER, подать питание и сразу включилась бы последняя исполняемая программа).
Код: Выделить всё
#include "delay.h"
#include "rc5.h"
#include "main.h"
eeprom int d_eep;
int lastCommand = 1; // последняя полученая комманда. Счиитываем её с eeprom
int state = 0; // состояние
void main (void)
{
PORTB = 0b00000000; DDRB = 0b00000000; // тут светодиоды и на РВ7 ИК-порт
PORTC = 0b00000000; DDRC = 0b00000000;
PORTD = 0b00000000; DDRD = 0b11111100; // тут светодиоды
Rc5_SetRx();
lastCommand = d_eep;
#asm ("sei")
while(1)
{
if (rc5.dataOK) {
rc5.dataOK = 0;
if (rc5.command == 12) { // нажатие кнопки POWER
if (state) { // если гирлянда включена
state = 0;
PORTD=0b00000000;
delay_ms(40);
d_eep = lastCommand; /// тушим гирлянду и сохраняем lastCommand в eeprom
}
else {
state = 1;
rc5.command = lastCommand;
}
}
if (state) // если включено
switch (rc5.command) {
case 1: while (rc5.dataOK==0) { // программа по нажатию 1
lastCommand = rc5.command; // сохраняем последнее нажатие
d_eep = lastCommand;
PORTD=0b00000100;
delay_ms(500);
PORTD=0b00001000;
delay_ms(500);
PORTD=0b00000100;
delay_ms(500);
} break;
case 2: while (rc5.dataOK==0) {
lastCommand = rc5.command; // сохраняем последнее нажатие
d_eep = lastCommand;
PORTD=0b00001100;
delay_ms(500);
PORTD=0b00011000;
delay_ms(500);
PORTD=0b00010100;
delay_ms(500);
} break;
case 3: while (rc5.dataOK==0) {
lastCommand = rc5.command; // сохраняем последнее нажатие
d_eep = lastCommand;
PORTB=0b00000000;
PORTD=0b00000100;
delay_ms(100);
PORTB=0b00000000;
PORTD=0b00001100;
delay_ms(100);
PORTB=0b00000000;
PORTD=0b00011100;
delay_ms(100);
PORTB=0b00000000;
PORTD=0b00111100;
delay_ms(100);
PORTB=0b00000000;
PORTD=0b01111100;
delay_ms(100);
PORTB=0b00000000;
PORTD=0b11111100;
delay_ms(100);
PORTB=0b00000001;
PORTD=0b11111100;
delay_ms(100);
PORTB=0b00000011;
PORTD=0b11111100;
delay_ms(100);
} break;
}
}
}
delay_ms(700);
rc5.dataOK = 0;
}


