CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула

Сообщение IfoR »

ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 45
Зарегистрирован: Ср авг 19, 2009 20:46:13
Откуда: Липецкая область, город Грязи

Сообщение ZverXz »

IfoR писал(а):ZverXz, как я понял, ты установил контроллер на тактирование посредством внешнего низкочастотного кварца (часовой кварц: 32768 Гц). Выход: подключить часовой кварц.
Да и не в ту тему это.
Извиняюсь, что не в ту тему. Фьюзы установил из-за неправильного расчета на калькуляторе. Часовой кварц ставил, все равно не определяется.
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 784
Зарегистрирован: Вс май 09, 2010 19:14:50
Откуда: Кемеровская обл. Новокузнецкий район

Сообщение Slavyan17 »

Завтра соберу STK 200/300 и отпишусь, зашьется тинька или нет.
Кстати, а с завода у тиньки2313А выставлен же внутренней генератор или нет?
Ценности у всех в разлет, у нас все абсолютно ясно,
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

Сообщение Александр 2677 »

Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

Александр 2677 писал(а):Подскажите пожалуйста. В CodeVision случайно что то включил, и теперь у меня как то странно работает курсор. Выглядит это примерно так . Если в середину текста поставить курсор что бы что то дописать, то получается что новый текст пишется поверх старого стирая его буква за буквой. Как отключить эту функцию?
клавиша INS (или Insert) на клавиатуре :))) знать нужно назначение клавиш-то :)))
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Реклама
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

Сообщение Александр 2677 »

КРУТО :))
Реклама
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

Александр 2677 писал(а):КРУТО :))
странно, что вы этого не знали - во всех редакторах Windos так :)
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула

Сообщение IfoR »

Александр 2677 писал(а):КРУТО :))
Вот теперь вы случайно нажали Caps Lock. :)
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Контактная информация:
Родился
Сообщения: 16
Зарегистрирован: Ср мар 04, 2009 06:57:47
Откуда: Москва

Сообщение Vatson4ik »

Здравствуйте! Скажите, пожалуйста, как можно сформировать прерывание по переполнению счетчика(или еще каким то образом) по истечении часа. И вообще можно ли это...
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Код: Выделить всё

if(++counter > N)
    {
    counter= 0;
    flag_hour= 1;
    }
PS. Это что, нашествие курсачей?
Docendo discimus
Контактная информация:
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

Сообщение 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)
..........
}
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение 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);
С уважением,
Виктор.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 190
Зарегистрирован: Ср окт 07, 2009 12:27:03
Откуда: Tver

Сообщение 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
     };
    };
   //
   //
   };
}

Я мог бы изменить весь Мир, но бог зажал исходники :(
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

По у молчанию все значения микроконтроллера флеш, еепром вроде как равны 0xFF
Так что возможно что все верно.Вы для начала зашейте значение в контроллер, а потом уже читайте его

Код: Выделить всё

__eeprom EEMEM
никогда так переменные не называйте, это может когда нибудь вылиться в конфликт с встроенными функциями других компиляторов.

а вообще разве так нужно инициализировать переменную в еепром?
Вот так для код вижна

Код: Выделить всё

 eeprom unsigned int EEMEM=0; 
В поисках истины человек развивается.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 190
Зарегистрирован: Ср окт 07, 2009 12:27:03
Откуда: Tver

Сообщение Uragan90 »

Спасибо большое за помощь!!!
Я так понял что в протеусе нельзя напрямую работать с еепром???
Я мог бы изменить весь Мир, но бог зажал исходники :(
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Черт его знает что там у вас не так, но для компилятора и эмулятора одни и те же ОПкоды, так что смотрите что сами неправильно сделали.
Скорее всего просто вы не подключили к проекту файл с флеш данными и поэтому считает, что она пуста, то есть 0xFF во всех ячейках.
Пробуйте добавить в начале инициализации код для обнуления флеш данных в вашей ячейке.
В поисках истины человек развивается.
Контактная информация:
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

Сообщение R_ura »

Uragan90 писал(а):
Я так понял что в протеусе нельзя напрямую работать с еепром???
У меня Протеус сохраняет в еепром данные при выключении симуляции. При включении они нормально из еепром считываются.
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

Привет друзья!))))
Подскажите пожалуйста как выставить фьюз биты на внешний кварц 8MHz?
У меня atmega16.
STM32F4 Discovery + KEIL + Windows 7
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

CKOPT, CKSEL3..0, SUT1..0 все незапрограммированы, т.е. =1.
Docendo discimus
Контактная информация:
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

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

Вернуться в «AVR»