Да и не в ту тему это.
CodeVision AVR в вопросах и ответах
ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Да и не в ту тему это.
- Реклама
Извиняюсь, что не в ту тему. Фьюзы установил из-за неправильного расчета на калькуляторе. Часовой кварц ставил, все равно не определяется.IfoR писал(а):ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
- Сообщения: 784
- Зарегистрирован: Вс май 09, 2010 19:14:50
- Откуда: Кемеровская обл. Новокузнецкий район
Завтра соберу STK 200/300 и отпишусь, зашьется тинька или нет.
Кстати, а с завода у тиньки2313А выставлен же внутренней генератор или нет?
Кстати, а с завода у тиньки2313А выставлен же внутренней генератор или нет?
Ценности у всех в разлет, у нас все абсолютно ясно,
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
- Сообщения: 89
- Зарегистрирован: Пн фев 22, 2010 11:16:00
Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
клавиша INS (или Insert) на клавиатуреАлександр 2677 писал(а):Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
битва с дураками проиграна, победители торжествуют. слава победителям!
- Реклама
- Сообщения: 89
- Зарегистрирован: Пн фев 22, 2010 11:16:00
странно, что вы этого не знали - во всех редакторах Windos такАлександр 2677 писал(а):КРУТО
битва с дураками проиграна, победители торжествуют. слава победителям!
Вот теперь вы случайно нажали Caps Lock.Александр 2677 писал(а):КРУТО
Здравствуйте! Скажите, пожалуйста, как можно сформировать прерывание по переполнению счетчика(или еще каким то образом) по истечении часа. И вообще можно ли это...
Код: Выделить всё
if(++counter > N)
{
counter= 0;
flag_hour= 1;
}Docendo discimus
Есть вот такая функция
Вроде бы все ясно, все понятно.
Но вот понадобилось эту функцию поместить в другую и возник вопрос, а как правильно передать в нее аргументы *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)
..........
}- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
При вызове функции не надо указывать типы параметров. Их достаточно определить в описании самой функции и в строке-прототипе.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);С уважением,
Виктор.
Виктор.
Привет друзья!!!
Пишу в "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
};
};
//
//
};
}
Я мог бы изменить весь Мир, но бог зажал исходники 
По у молчанию все значения микроконтроллера флеш, еепром вроде как равны 0xFF
Так что возможно что все верно.Вы для начала зашейте значение в контроллер, а потом уже читайте егоникогда так переменные не называйте, это может когда нибудь вылиться в конфликт с встроенными функциями других компиляторов.
а вообще разве так нужно инициализировать переменную в еепром?
Вот так для код вижна
Так что возможно что все верно.Вы для начала зашейте значение в контроллер, а потом уже читайте его
Код: Выделить всё
__eeprom EEMEMа вообще разве так нужно инициализировать переменную в еепром?
Вот так для код вижна
Код: Выделить всё
eeprom unsigned int EEMEM=0; В поисках истины человек развивается.
Спасибо большое за помощь!!!
Я так понял что в протеусе нельзя напрямую работать с еепром???
Я так понял что в протеусе нельзя напрямую работать с еепром???
Я мог бы изменить весь Мир, но бог зажал исходники 
Черт его знает что там у вас не так, но для компилятора и эмулятора одни и те же ОПкоды, так что смотрите что сами неправильно сделали.
Скорее всего просто вы не подключили к проекту файл с флеш данными и поэтому считает, что она пуста, то есть 0xFF во всех ячейках.
Пробуйте добавить в начале инициализации код для обнуления флеш данных в вашей ячейке.
Скорее всего просто вы не подключили к проекту файл с флеш данными и поэтому считает, что она пуста, то есть 0xFF во всех ячейках.
Пробуйте добавить в начале инициализации код для обнуления флеш данных в вашей ячейке.
В поисках истины человек развивается.
У меня Протеус сохраняет в еепром данные при выключении симуляции. При включении они нормально из еепром считываются.Uragan90 писал(а):
Я так понял что в протеусе нельзя напрямую работать с еепром???
Привет друзья!))))
Подскажите пожалуйста как выставить фьюз биты на внешний кварц 8MHz?
У меня atmega16.
Подскажите пожалуйста как выставить фьюз биты на внешний кварц 8MHz?
У меня atmega16.
STM32F4 Discovery + KEIL + Windows 7
CKOPT, CKSEL3..0, SUT1..0 все незапрограммированы, т.е. =1.
Docendo discimus
То есть эти биты надо отметить галочками?
Посмотрите пожалуйста скриншот, правильно я сделал?

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



