CodeVision AVR в вопросах и ответах
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Да и не в ту тему это.
- ZverXz
- Открыл глаза
- Сообщения: 45
- Зарегистрирован: Ср авг 19, 2009 20:46:13
- Откуда: Липецкая область, город Грязи
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
IfoR писал(а):ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Извиняюсь, что не в ту тему. Фьюзы установил из-за неправильного расчета на калькуляторе. Часовой кварц ставил, все равно не определяется.
- Slavyan17
- Опытный кот
- Сообщения: 784
- Зарегистрирован: Вс май 09, 2010 19:14:50
- Откуда: Кемеровская обл. Новокузнецкий район
Re: CodeVision AVR в вопросах и ответах
Завтра соберу STK 200/300 и отпишусь, зашьется тинька или нет.
Кстати, а с завода у тиньки2313А выставлен же внутренней генератор или нет?
Кстати, а с завода у тиньки2313А выставлен же внутренней генератор или нет?
Ценности у всех в разлет, у нас все абсолютно ясно,
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
-
Александр 2677
- Встал на лапы
- Сообщения: 89
- Зарегистрирован: Пн фев 22, 2010 11:16:00
Re: CodeVision AVR в вопросах и ответах
Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
клавиша INS (или Insert) на клавиатуреАлександр 2677 писал(а):Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
битва с дураками проиграна, победители торжествуют. слава победителям!
-
Александр 2677
- Встал на лапы
- Сообщения: 89
- Зарегистрирован: Пн фев 22, 2010 11:16:00
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Александр 2677 писал(а):КРУТО
странно, что вы этого не знали - во всех редакторах Windos так
битва с дураками проиграна, победители торжествуют. слава победителям!
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Александр 2677 писал(а):КРУТО
Вот теперь вы случайно нажали Caps Lock.
Re: CodeVision AVR в вопросах и ответах
Здравствуйте! Скажите, пожалуйста, как можно сформировать прерывание по переполнению счетчика(или еще каким то образом) по истечении часа. И вообще можно ли это...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Код: Выделить всё
if(++counter > N)
{
counter= 0;
flag_hour= 1;
}PS. Это что, нашествие курсачей?
Docendo discimus
Re: CodeVision AVR в вопросах и ответах
Есть вот такая функция
Вроде бы все ясно, все понятно.
Но вот понадобилось эту функцию поместить в другую и возник вопрос, а как правильно передать в нее аргументы *pE, *pR ?
Код: Выделить всё
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 в вопросах и ответах
При вызове функции не надо указывать типы параметров. Их достаточно определить в описании самой функции и в строке-прототипе.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);С уважением,
Виктор.
Виктор.
- Uragan90
- Нашел транзистор. Понюхал.
- Сообщения: 190
- Зарегистрирован: Ср окт 07, 2009 12:27:03
- Откуда: Tver
Re: CodeVision AVR в вопросах и ответах
Привет друзья!!!
Пишу в "CodeVision AVR" для "мега8" програмку таймера которая плюс должна по нажатию кнопки сохранять значение переменной "flag" в EEPROM микроконтроллера, но в протеусе всё время выскакивает при первом включении значение отличное от "0" поэтому не может выполнится "if(flag == 0)" хотя должно вроде бы быть ноль.
Помогите разобраться плиз
Пишу в "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
};
};
//
//
};
}
Я мог бы изменить весь Мир, но бог зажал исходники 
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
По у молчанию все значения микроконтроллера флеш, еепром вроде как равны 0xFF
Так что возможно что все верно.Вы для начала зашейте значение в контроллер, а потом уже читайте его
никогда так переменные не называйте, это может когда нибудь вылиться в конфликт с встроенными функциями других компиляторов.
а вообще разве так нужно инициализировать переменную в еепром?
Вот так для код вижна
Так что возможно что все верно.Вы для начала зашейте значение в контроллер, а потом уже читайте его
Код: Выделить всё
__eeprom EEMEMа вообще разве так нужно инициализировать переменную в еепром?
Вот так для код вижна
Код: Выделить всё
eeprom unsigned int EEMEM=0; В поисках истины человек развивается.
- Uragan90
- Нашел транзистор. Понюхал.
- Сообщения: 190
- Зарегистрирован: Ср окт 07, 2009 12:27:03
- Откуда: Tver
Re: CodeVision AVR в вопросах и ответах
Спасибо большое за помощь!!!
Я так понял что в протеусе нельзя напрямую работать с еепром???
Я так понял что в протеусе нельзя напрямую работать с еепром???
Я мог бы изменить весь Мир, но бог зажал исходники 
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Черт его знает что там у вас не так, но для компилятора и эмулятора одни и те же ОПкоды, так что смотрите что сами неправильно сделали.
Скорее всего просто вы не подключили к проекту файл с флеш данными и поэтому считает, что она пуста, то есть 0xFF во всех ячейках.
Пробуйте добавить в начале инициализации код для обнуления флеш данных в вашей ячейке.
Скорее всего просто вы не подключили к проекту файл с флеш данными и поэтому считает, что она пуста, то есть 0xFF во всех ячейках.
Пробуйте добавить в начале инициализации код для обнуления флеш данных в вашей ячейке.
В поисках истины человек развивается.
Re: CodeVision AVR в вопросах и ответах
Uragan90 писал(а):
Я так понял что в протеусе нельзя напрямую работать с еепром???
У меня Протеус сохраняет в еепром данные при выключении симуляции. При включении они нормально из еепром считываются.
-
Mr.Denis
- Прорезались зубы
- Сообщения: 220
- Зарегистрирован: Пт авг 07, 2009 22:06:49
- Откуда: Россия, Москва
Re: CodeVision AVR в вопросах и ответах
Привет друзья!))))
Подскажите пожалуйста как выставить фьюз биты на внешний кварц 8MHz?
У меня atmega16.
Подскажите пожалуйста как выставить фьюз биты на внешний кварц 8MHz?
У меня atmega16.
STM32F4 Discovery + KEIL + Windows 7
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
CKOPT, CKSEL3..0, SUT1..0 все незапрограммированы, т.е. =1.
Docendo discimus
-
Mr.Denis
- Прорезались зубы
- Сообщения: 220
- Зарегистрирован: Пт авг 07, 2009 22:06:49
- Откуда: Россия, Москва
Re: CodeVision AVR в вопросах и ответах
То есть эти биты надо отметить галочками?
Посмотрите пожалуйста скриншот, правильно я сделал?

Посмотрите пожалуйста скриншот, правильно я сделал?
- Вложения
-
- 1.jpg
- (56.97 КБ) 735 скачиваний
STM32F4 Discovery + KEIL + Windows 7
