Страница 190 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 18:29:49
IfoR
ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 19:08:09
ZverXz
IfoR писал(а):ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Извиняюсь, что не в ту тему. Фьюзы установил из-за неправильного расчета на калькуляторе. Часовой кварц ставил, все равно не определяется.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 19:16:55
Slavyan17
Завтра соберу STK 200/300 и отпишусь, зашьется тинька или нет.
Кстати, а с завода у тиньки2313А выставлен же внутренней генератор или нет?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 20:44:46
Александр 2677
Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 20:46:54
Мастер Ломастер
Александр 2677 писал(а):Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
клавиша INS (или Insert) на клавиатуре

знать нужно назначение клавиш-то

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 20:49:53
Александр 2677
КРУТО

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 20:50:40
Мастер Ломастер
Александр 2677 писал(а):КРУТО

странно, что вы этого не знали - во всех редакторах Windos так

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 21:11:04
IfoR
Александр 2677 писал(а):КРУТО

Вот теперь вы случайно нажали Caps Lock.

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 21:27:39
Vatson4ik
Здравствуйте! Скажите, пожалуйста, как можно сформировать прерывание по переполнению счетчика(или еще каким то образом) по истечении часа. И вообще можно ли это...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс мар 11, 2012 21:34:01
pyzhman
Код: Выделить всё
if(++counter > N)
{
counter= 0;
flag_hour= 1;
}
PS. Это что, нашествие курсачей?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 07:22:14
R_ura
Есть вот такая функция
Код: Выделить всё
void write_struct_to_eeprom (eeprom unsigned char *pE, unsigned char *pR, unsigned char size)
Вроде бы все ясно, все понятно.
Но вот понадобилось эту функцию поместить в другую и возник вопрос, а как правильно передать в нее аргументы *pE, *pR ?
Код: Выделить всё
void func_abc ( ...*pE , .... *pR ) {
..........
write_struct_to_eeprom (eeprom unsigned char *pE, unsigned char *pR, unsigned char size)
..........
}
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 09:27:37
ut1wpr
R_ura писал(а):Есть вот такая функция
Код: Выделить всё
void write_struct_to_eeprom (eeprom unsigned char *pE, unsigned char *pR, unsigned char size)
Вроде бы все ясно, все понятно.
Но вот понадобилось эту функцию поместить в другую и возник вопрос, а как правильно передать в нее аргументы *pE, *pR ?
Код: Выделить всё
void func_abc ( ...*pE , .... *pR ) {
..........
write_struct_to_eeprom (eeprom unsigned char *pE, unsigned char *pR, unsigned char size)
..........
}
При вызове функции не надо указывать типы параметров. Их достаточно определить в описании самой функции и в строке-прототипе.
Причем в строке-прототипе имена переменных можно не указывать. Эта запись нужна лишь для проверки на совпадение типов.
Скорее всего вам нужно передавать в вызываемую функцию полученный извне указатель
Код: Выделить всё
void func_abc ( ...*pE , .... *pR ) {
..........
write_struct_to_eeprom (*pE, *pR, size);
..........
}
При этом у вас где-то должна быть определена функция
Код: Выделить всё
void write_struct_to_eeprom (eeprom unsigned char *pE, unsigned char *pR, unsigned char size){
.....
}
и должен быть прототип функции
Код: Выделить всё
void write_struct_to_eeprom (eeprom unsigned char *, unsigned char *, unsigned char);
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 17:40:28
Uragan90
Привет друзья!!!
Пишу в "CodeVision AVR" для "мега8" програмку таймера которая плюс должна по нажатию кнопки сохранять значение переменной "flag" в EEPROM микроконтроллера, но в протеусе всё время выскакивает при первом включении значение отличное от "0" поэтому не может выполнится "if(flag == 0)" хотя должно вроде бы быть ноль.
Помогите разобраться плиз
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
//=========
unsigned int p;
unsigned char flag=0;
unsigned int __eeprom EEMEM; // определяем переменную в EEPROM
//=========
//
//---------
interrupt [EXT_INT0] void ext_int0_isr(void)
{
delay_ms(50); //Антидребезг
if(PIND.2 == 0) //Если кнопка SB1 ещё нажата то
{
while(PIND.2 == 0){}; //Ждем отпускания кнопки
//Звуковой сигнал
flag++; //Увеличиваем "flag" на еденицу
EEMEM = flag; //Записываем "flag" в EEPROM
};
if(flag == 5)
{
flag = 1; //Когда дойдет до 5 присвоим переменной "flag" значение =1
};
}
//====================
void main(void)
{
DDRD=0b00000000; // Порт D на вход
PORTD=0b00000100; // Включаем подтагивающие резисторы
DDRC=0b11111111; // Порт С на выход
//PORTC=0b00000000; // Включаем подтагивающие резисторы
GICR|=0xC0;
MCUCR=0x00;
GIFR=0xC0;
flag = EEMEM; //Считываем байт из EEPROM и помещаем его в "flag"
#asm("sei") //Разрешаем прирывания
while(1) //Основной цикл
{
if(flag == 0) //Если "flag" равен нулю то
{
for (p=300;p>0;p--) //Задержка включения 5мин.
{
PORTC&= ~(1<<0|1<<1|1<<2|1<<3|1<<4); //Очищаем светодиоды
delay_ms(500); //Задержка 500ms
PORTC|= (1<<0|1<<1|1<<2|1<<3|1<<4); //Включаем светодиоды
delay_ms(500); //Задержка 500ms
};
};
//
//
};
}
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 19:04:18
vitalik_1984
По у молчанию все значения микроконтроллера флеш, еепром вроде как равны 0xFF
Так что возможно что все верно.Вы для начала зашейте значение в контроллер, а потом уже читайте его
никогда так переменные не называйте, это может когда нибудь вылиться в конфликт с встроенными функциями других компиляторов.
а вообще разве так нужно инициализировать переменную в еепром?
Вот так для код вижна
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 19:23:57
Uragan90
Спасибо большое за помощь!!!
Я так понял что в протеусе нельзя напрямую работать с еепром???
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 20:28:00
vitalik_1984
Черт его знает что там у вас не так, но для компилятора и эмулятора одни и те же ОПкоды, так что смотрите что сами неправильно сделали.
Скорее всего просто вы не подключили к проекту файл с флеш данными и поэтому считает, что она пуста, то есть 0xFF во всех ячейках.
Пробуйте добавить в начале инициализации код для обнуления флеш данных в вашей ячейке.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн мар 12, 2012 23:56:25
R_ura
Uragan90 писал(а):
Я так понял что в протеусе нельзя напрямую работать с еепром???
У меня Протеус сохраняет в еепром данные при выключении симуляции. При включении они нормально из еепром считываются.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт мар 13, 2012 18:17:08
Mr.Denis
Привет друзья!))))
Подскажите пожалуйста как выставить фьюз биты на внешний кварц 8MHz?
У меня atmega16.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт мар 13, 2012 18:21:45
pyzhman
CKOPT, CKSEL3..0, SUT1..0 все незапрограммированы, т.е. =1.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт мар 13, 2012 21:01:47
Mr.Denis
То есть эти биты надо отметить галочками?
Посмотрите пожалуйста скриншот, правильно я сделал?
