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

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

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

Сообщение IfoR »

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

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

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

Сообщение ZverXz »

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

Извиняюсь, что не в ту тему. Фьюзы установил из-за неправильного расчета на калькуляторе. Часовой кварц ставил, все равно не определяется.
Аватара пользователя
Slavyan17
Опытный кот
Сообщения: 784
Зарегистрирован: Вс май 09, 2010 19:14:50
Откуда: Кемеровская обл. Новокузнецкий район

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

Сообщение Slavyan17 »

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

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

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

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

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

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

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

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

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

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

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

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

Александр 2677 писал(а):КРУТО :))

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

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

Сообщение IfoR »

Александр 2677 писал(а):КРУТО :))

Вот теперь вы случайно нажали Caps Lock. :)
Изображение
/dev/urandom - гигабайты информации.

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

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

Сообщение Vatson4ik »

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

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

Сообщение pyzhman »

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

if(++counter > N)
    {
    counter= 0;
    flag_hour= 1;
    }

PS. Это что, нашествие курсачей?
Docendo discimus
R_ura
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

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

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

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

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

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

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

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

Сообщение vitalik_1984 »

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

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

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

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

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

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

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

Сообщение Uragan90 »

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

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

Сообщение vitalik_1984 »

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

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

Сообщение R_ura »

Uragan90 писал(а):
Я так понял что в протеусе нельзя напрямую работать с еепром???

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

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

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

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

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

Сообщение pyzhman »

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

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

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

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

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