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

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

R_ura писал(а): Сделал так. В листинге появилась запись каждой переменной в еепром. Файл для еепром не изменилс))) Может компилятор пихает данные в этот файл, если их определить как константы? Или я в настройках что-то упустил? В папке екзе файл для еепром есть, но его содержимое
:00000001FF не меняется..
Я с CV не работал. Быстренько приподнял его, наваял тестовый проект. Все нормально создается и инициализируется. При прожиге записывать оба файла, как я и говорил - .eep и .hex
Всю информацию и почерпнул из хелпа CV. Кстати, очень хороший.

Удачи!
Вложения
TEST.zip
(24.07 КБ) 160 скачиваний
С уважением,
Виктор.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

там немного хитроумный способ сохранения.выбираешь программирование там сохранить файл еепром сохранешь куда тебе нужно и потом оттуда можно будет и зашивать.
Вроде и так должно меняться.только нужно не компилировать нажать кнопку,а билд проджект.
В поисках истины человек развивается.
Контактная информация:
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

vitalik_1984 писал(а):там немного хитроумный способ сохранения.выбираешь программирование там сохранить файл еепром сохранешь куда тебе нужно и потом оттуда можно будет и зашивать.
Вроде и так должно меняться.только нужно не компилировать нажать кнопку,а билд проджект.
Если это ко мне, то отвечу. Вроде ничего хитроумного. BUILD (правильно, не compile) проект, и в папке EXE появляются три файла. Расширения .ROM, .HEX и .EEP

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

Сообщение vitalik_1984 »

Предыдущий юре был предназначен, но и другим не повредит.
Проверил после билд олл проджект файлс КВ полностью перестраивает проект в том числе удаляет файл .eep если память еепром не используется.
А если Оно там было и не меняется То это скорее всего compile был нажат.
А про хитроумный способ это если лень открывать папку с проектами и затем папку ЕХЕ
В поисках истины человек развивается.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

Сообщение R_ura »

ut1wpr писал(а):
Я с CV не работал. Быстренько приподнял его, наваял тестовый проект. Все нормально создается и инициализируется. При прожиге записывать оба файла, как я и говорил - .eep и .hex
Всю информацию и почерпнул из хелпа CV. Кстати, очень хороший.

Удачи!
Спасибо. Так вроде бы все в порядке.
Но вылезла еще загвоздка. Теперь этот еепромовский файл не пишется в МК. Поменял на другой, тоже самое. Флеш шьется, еепром нет. Никогда не прошивал еепром, может упускаю какой нюанс?
Изображение
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

R_ura писал(а):Но вылезла еще загвоздка. Теперь этот еепромовский файл не пишется в МК. Поменял на другой, тоже самое. Флеш шьется, еепром нет. Никогда не прошивал еепром, может упускаю какой нюанс?
А вы "внутрь" файла .eep заглядывали? Что в нем и по каким адресам разложено?
Не мешало бы глянуть на фрагмент программы с определениями переменных в eeprom.
С уважением,
Виктор.
Реклама
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

Сообщение R_ura »

ut1wpr писал(а):А вы "внутрь" файла .eep заглядывали? Что в нем и по каким адресам разложено?
Не мешало бы глянуть на фрагмент программы с определениями переменных в eeprom.
Вот файл .eep без определения переменных
Изображение
Вот файл .eep с определением переменных
Изображение
вот определение переменных и присваивание им значений
Изображение

Я думаю дело в том, что я пользусь программатором MKII + АВРСТУДИО. А там я вижу требуются для флеш и для еепром файлы .hex кодвижн же выдает для еепром файл .eep.
Я пробовал прошить не хексом, а файлом из тойже папки .rom. Студия не работает с этим файлом, не прошивается он в мк.
С Кодвижн же почему-то мой программатор сейчас не дружит.. Хотя вроде работал недавно.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Запустите DEBUG - pause - в вкладке DEBUG UP/DOWNLOAD MEMORY - далее интуитивно понятно что надо сделать
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Файл .eep собран абсолютно в соответствии с программными определениями. Как и чем зашивать - дело личных предпочтений. Тут я вам не советчик.
У меня все шьется нормально без проблем и не первый год... :)
С уважением,
Виктор.
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

Сообщение R_ura »

ut1wpr писал(а):Файл .eep собран абсолютно в соответствии с программными определениями. Как и чем зашивать - дело личных предпочтений. Тут я вам не советчик.
У меня все шьется нормально без проблем и не первый год... :)
Чем шьется? Попробовал шить программатором из под КодВижна. Флеш шьется, еепром нет.. :shock:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Юра можно из КВ и в кекс сохранить, но вообще студия .eep тоже отлично принимает.
Пробуй искать в железе что то.На флеш может просто не так энергии много требуется или скорость не та стоит программирования.Окно то как раз говорит либо питания нет, либо скорость слишком большая для МК
В поисках истины человек развивается.
Контактная информация:
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

R_ura писал(а):
ut1wpr писал(а):Файл .eep собран абсолютно в соответствии с программными определениями. Как и чем зашивать - дело личных предпочтений. Тут я вам не советчик.
У меня все шьется нормально без проблем и не первый год... :)
Чем шьется? Попробовал шить программатором из под КодВижна. Флеш шьется, еепром нет.. :shock:
С давних пор пользовался внутрисхемным программатором а-ля БайтБластер и софтом от Александра Редчука. На мой взгляд, самое безошибочное сочетание. С тех пор, как купил Семерку (проблемы с реальной многозадачностью в этой системе), приобрел на Космодроме (надоело лепить всякие-разные, а потом ловить глюки-мухи) USB-ByteBlaster, поддерживаемый этим же софтом. Поддержка средами программирования (Винавр, Студия и прочая) этого программатора меня мало интересует, т.к. он прекрасно управляется из командной строки, а значит можно в любой среде натолкать макросов (ну, или как там еще). Скорость записи/чтения/верификации этого программатора вне конкуренции. А для отладки в железе и параллельного программирования (очень редко им пользуюсь, разве кто-то из знакомых попросит поправить зашитую кривоту) пользуюсь AVR Dragon-ом. Если пользоваться аккуратно - надежный девайс.
Но это, как я уже говорил, вопрос личных предпочтений. Мне просто хотелось сконцентрироваться на программировании, решении поставленных себе задач, поиске изящных и оптимальных решений. И совершенно не хотелось заниматься программаторостроением. Т.е. я сразу определился для себя, что для меня первично, а что вторично. Не сделай я этого, рано или поздно я вернулся бы к вопросу о выборе того или иного железа и софта.

Это моя точка зрения и никого ни к чему она не обязывает.
С уважением,
Виктор.
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

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

Добрый день. Возникла необходимость перемотать несколько трансов, помогите набросать программку счётчика оборотов с направлением вращения.
Датчик вращения будет выглядеть так https://picasaweb.google.com/alekseev.a ... 1866753586

Во общем то моя программа упёрлась в проверку чередования импульсов. Все свои потуги выкладывать не буду, но для примера вот такой кусок

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


 if((PINC.1)&&(!PINC.2)) 
{
 if ((PINC.1)&&(PINC.2))
{
 if ((!PINC.1)&&(PINC.2))
      { i++;};

    };
    };           
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Александр 2677 писал(а):Добрый день. Возникла необходимость перемотать несколько трансов, помогите набросать программку счётчика оборотов с направлением вращения.
Датчик вращения будет выглядеть так https://picasaweb.google.com/alekseev.a ... 1866753586
Страница не найдена. А многое зависит от датчика.
С уважением,
Виктор.
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

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

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

Сообщение pyzhman »

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


 if((PINC.1)&&(!PINC.2)) 
{
 if ((PINC.1)&&(PINC.2))//это условие выполнится только тогда, когда датчик PINC.2 успел измениться за ~ 10 тактов мк.
{
 if ((!PINC.1)&&(PINC.2))//и это тоже. Итого код нерабочий. Так быстро руками колесико не вращается.  :) 
      { i++;};

    };
    };           
Docendo discimus
Контактная информация:
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

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

Эту загогулину я уже понял. Я вот и пытаюсь понять как задержаться на определённом участке программы и всё время проверять когда же выражение будет истина.
Пробовал что то вроде этого точно уже не помню.

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

    if((PINC.1)&&(!PINC.2)) 

   {   for (p=5;p<20;)
                   
   {  
     if((PINC.1)&&(PINC.2)) 
     {      
      for (p=5;p<20;)
     {    
                                            
     if((!PINC.1)&&(PINC.2)) 
     { i--; 
p=21;
  }                          
   else  {
  p=5;
    };
                                               
  };
  }      
                       
  else  {
  p=5;
   };
                             };
                              };
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Попробуйте с прерыванием. На одной оптопаре формируете сигнал прерывания, контроллер настраиваете на срабатывание или по фронту или по спаду. Без разницы. В теле обработчика анализируете состояние второй оптопары. Если "1" - делаете инкремент счетчика. Если "0" - декремент. Правда, при ручном вращении "дребезг" будет большой проблемой. Вращение неравномерное, тайминги непредсказуемые. В таких случаях аппаратно можно защитится простейшими RS-триггерами. Можно и программно, но это существенно усложнит программу. А можно при малых скоростях вращения заменить прерывание поллингом, но для начинающего это будет сложнее. В инете можно найти немало примеров работы с валкодером, здесь та же задача. Что-то вроде этого:
http://avrlab.com/node/88
С уважением,
Виктор.
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

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

Спасибо, буду пробовать.
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн фев 22, 2010 11:16:00

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

Ура получилось

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



// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x00;

New = PINC & 0x03;

  if (Old==2)
   {  
        if (New==3) 
       {  EncData++;
         };

        if (New==0) 
       {  EncData--;
         };
       };

if (Old==0)
   { 
 if (New==2) 
       {  EncData++;
         };

        if (New==1) 
       {  EncData--;
         };
       };
 
  if (Old==1)
   {  

       if (New==0) 
       {  EncData++;
         };

        if (New==3) 
       {  EncData--;
         };
       };
  
  
      if (Old==3)
   {  

       if (New==1) 
       {  EncData++;
         };

        if (New==2) 
       {  EncData--;
         };
       };
  

  Old=New; 
}

Ответить

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