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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Передавать нужно начиная с младшего бита. Регистры стоят 74HC595, судя по даташиту устанавливать данные, записывать в регистр и выводить информацию нужно по фронту если я правильно понял "LOW-to-HIGH transition". Вывод информации (третий вывод) нужно делать уже после записи всех битов тоесть в конце передачи.
«И всё-таки она вертится!»
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

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

Сообщение AI_Disable »

Apparatchik писал(а):...74HC595...

Что ж вы ерундой маялись, сразу бы сказали, о чём речь. Я то подумал, что тут что-то не стандартное. Вопрос: как вы собирались запихать в бедный 8-битный регистр 32 бита?
Функция для отправки на HC595 байта:

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

#define DATA 2
#define CLK 1
#define STROBE 0

DDRA|=(1<<DATA)|(1<<CLK)|(1<<STROBE);

void hc595(unsigned char tmp)
{
for(unsigned char i=0;i<8;i++)
   {
   if(tmp&0x80) PORTA|=1<<DATA;
   else PORTA&=~(1<<DATA);
   tmp<<=1;
   PORTA|=1<<CLK;
   PORTA&=~(1<<CLK);
   }   
PORTA|=1<<STROBE;
PORTA&=~(1<<STROBE);
}
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

AI_Disable писал(а):Вопрос: как вы собирались запихать в бедный 8-битный регистр 32 бита?

У меня соединено четыре регистра последовательно. Спасибо за код буду разбиратся.
«И всё-таки она вертится!»
Аватара пользователя
Ardarik
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Пн май 18, 2009 16:26:10
Откуда: Саранск
Контактная информация:

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

Сообщение Ardarik »

Какую версию скачать CodeVision AVR и с каким програматором она работает?
Хватит жить как получается- надо жить как хочется
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Никак не выходит загнать данные в четыре регистра hc595. Вот написал код для пробы и не выходит:

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

#include <mega16.h>
#include <delay.h>

char hc595[8]={0,0,2,0,0,0,0,0}; // например нужно записать два в третий разряд

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
 char j,buf;
 signed char i;
 for (i=7;i>=0;i--)
     {buf=hc595[i];
      for (j=0;j<4;j++)
          {if(buf&0b00000001) PORTA.2=1; //проверяем флаг сдвига, если установлен, в DATA пишем 1
              else PORTA.2=0; //иначе пишем 0 в DATA
           PORTA.1=1; //запись в регистр
           PORTA.1=0;
           buf=buf >> 1; // делаем логический сдвиг вправо
          }
     }
 PORTA.0=1; //строб
 PORTA.0=0;
}

Вместо двойки в третем разряде записывается четвёрка в четвёртый разряд, если писать еденицу в третий разряд то пишется восемь в четвёртый разряд. Что я делаю не так?

P.S. Загонять нужно начиная с младшего бита.
«И всё-таки она вертится!»
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

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

Сообщение AI_Disable »

Apparatchik, Приложите схему. Не совсем понятно как подключены реги...
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

AI_Disable писал(а):Apparatchik, Приложите схему. Не совсем понятно как подключены реги...

Вот
Схема.jpg
(188.22 КБ) 604 скачивания
«И всё-таки она вертится!»
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

С разрядами разобрался немножко не так разпаял нужно поменять местами 1-2, 3-4, 5-6, 7-8 потом исправлю, но цыфры, которые выводятся в разряды всёравно неправильные.
«И всё-таки она вертится!»
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Вопрос снят.
Исправил разряды а заодно и соединил так чтоб заганять начинать с старшего бита (благо выходы регистров на разёмах делал) подправил программу и всё заработало :)
«И всё-таки она вертится!»
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

есть переменная типа unsigned int

как получать доступ к ее отдельным битам ?

интересует проверка бита по номеру и установка значения бита в 0 или 1...
kokcuk
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 08, 2009 20:58:46

Помогите разобраться с CodeVisionAVR

Сообщение kokcuk »

Делаю проект считывание с датчика DS18B20 температуры микроконтроллером ATtiny2313 и вывод на LCD 16x2.
tiny2313 ds18b20.rar
Схема в Proteus
(14.8 КБ) 288 скачиваний

Код написал в CodeVisionAVR с помощью automatic program generator.
tiny2313.rar
Программа в CodeVsion
(72.74 КБ) 273 скачивания

При компиляции выдает ошибку переполнения памяти контроллера.

Например, сдесь код писался в assembler AVR Studio http://radiokot.ru/circuit/digital/home/54/ так там и часы и календарь и термометр. Все влезло. А у меня даже температура не влазит.

В чем проблема? В automatic program generator?
kokcuk
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 08, 2009 20:58:46

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

Сообщение kokcuk »

Arduino 300 рублей писал(а):спринтф закоментил - влезла в память, но стэк мал.

используйте ATmega16 за 80 рублей ( так и в примере PROTEUS One Wire ) или "фиг найдешь" ATmega8.



Сдесь http://radiokot.ru/circuit/digital/home/54/ и часы и календарь и термометр. Все влезло. А у меня даже температура не влазит.

Я своего кода написал понты...

#include <delay.h>
#include <stdio.h> подключил стандартные ф-ции

char lcd_buffer[8]; объявил глобальную переменную

...
int term1, term2; объявил локальные перменные
...

term1=ds18b20_temperature(&ds1820_rom_codes[0][0]); //читаем температуру
term2=ds18b20_temperature(&ds1820_rom_codes[1][0]);
sprintf(lcd_buffer,"Ty=%-i\xdfC",term1);
lcd_clear();
lcd_puts(lcd_buffer);
sprintf(lcd_buffer,"Tk=%-i\xdfC",term2);
lcd_gotoxy(0,1);
lcd_puts(lcd_buffer);

собственно сам код... больше ничего
все остальное CodeVisionAVR automatic program generator
:shock:
что получается свою программу вообще писать нельзя, что он сгенерировал то и оставлять :))

Скати, компилировал только генерированный код - пишет стек мал :shock:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

kokcuk писал(а):что получается свою программу вообще писать нельзя, что он сгенерировал то и оставлять :))
только свою программу и писать, не надеясь на всякие автоматические генераторы :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kokcuk
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 08, 2009 20:58:46

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

Сообщение kokcuk »

ARV писал(а):
kokcuk писал(а):что получается свою программу вообще писать нельзя, что он сгенерировал то и оставлять :))
только свою программу и писать, не надеясь на всякие автоматические генераторы :)))


Так CodeVisionAVR и понравился тем что есть генератор кода!

Жизнь сильно коротка, чтобы писать на асемблере :)))
kokcuk
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 08, 2009 20:58:46

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

Сообщение kokcuk »

Arduino 300 рублей писал(а):
kokcuk писал(а):что получается свою программу вообще писать нельзя, что он сгенерировал то и оставлять :))

Можно, если ответы читать и думать чуток о том что написано на обложке даташита.

ARV писал(а): только свою программу и писать, не надеясь на всякие автоматические генераторы :)))
А надеясь на опыт как у ARV которого у вас нет и вряд ли когда будет.

ARV всем советует - не слушайте советов !


бла-бла-бла
бла-бла-бла

А по делу слабо написать? А? Гений для удобрений...
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Хочу к mega16 подключить ds1307 по I2C естественно. Как аппаратно управлять, может файл какой подключить короче с чего начать изучать I2C? Где можно примеры посмотреть с русскими коментами желательно?
«И всё-таки она вертится!»
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

В CodeVisionAVR в генераторе кода на вкладке I2C можно выбрать DS1307. Что там нужно выставлять и что это даст? Разясните плиз.
«И всё-таки она вертится!»
kokcuk
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 08, 2009 20:58:46

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

Сообщение kokcuk »

Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые. :)) :)))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

kokcuk писал(а):Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые. :)) :)))
ваша ирония понятна. она, видимо, зиждется на современной системе образования: я заплатил кому-то деньги, чтобы за меня сделали курсовик, сдали зачет/экзамен и т.д. - в итоге я "дипломированный специалист высокого класса" - но могу ли я сравниться по знаниям с теми, кто реально все это делал?!
так и производители CVAVR - берут деньги, чтобы плодились лентяи и недоучки, ведь на них затем можно стричь купоны и дальше, пожизненно.
человек, пробивающийся через тернии к знаниям, получает больше проблем, но и больше знаний. проблемы кончатся - а знания останутся.

писать программы и компилировать можно и в CVAVR - но от использования его Wizard-ов лучше отказаться по вышеназванным причинам. советы некоторых о том, что глядя на сгенерированный код можно чему-то научиться, я отметаю, как очередную блесну-замануху: ничему научиться нельзя, глядя на то, как этот самый "генератор" тупо обнуляет в начале main() все-все-все регистры и т.п., хотя после сброса МК все это уже 100% обнулено!!! научиться из этого можно только тупизне.

запомните одно: если кто-то впаривает вам что-то - это делается не от любви к вам, а исключительно из личной корысти. цепочка заинтересованности может быть длинной - но в ее истоке всегда корысть :)))

удачи, визардофилы и кодвижнолюбы :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kokcuk
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 08, 2009 20:58:46

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

Сообщение kokcuk »

ARV писал(а):
kokcuk писал(а):Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые. :)) :)))
ваша ирония понятна. она, видимо, зиждется на современной системе образования: я заплатил кому-то деньги, чтобы за меня сделали курсовик, сдали зачет/экзамен и т.д. - в итоге я "дипломированный специалист высокого класса" - но могу ли я сравниться по знаниям с теми, кто реально все это делал?!
так и производители CVAVR - берут деньги, чтобы плодились лентяи и недоучки, ведь на них затем можно стричь купоны и дальше, пожизненно.
человек, пробивающийся через тернии к знаниям, получает больше проблем, но и больше знаний. проблемы кончатся - а знания останутся.

писать программы и компилировать можно и в CVAVR - но от использования его Wizard-ов лучше отказаться по вышеназванным причинам. советы некоторых о том, что глядя на сгенерированный код можно чему-то научиться, я отметаю, как очередную блесну-замануху: ничему научиться нельзя, глядя на то, как этот самый "генератор" тупо обнуляет в начале main() все-все-все регистры и т.п., хотя после сброса МК все это уже 100% обнулено!!! научиться из этого можно только тупизне.

запомните одно: если кто-то впаривает вам что-то - это делается не от любви к вам, а исключительно из личной корысти. цепочка заинтересованности может быть длинной - но в ее истоке всегда корысть :)))

удачи, визардофилы и кодвижнолюбы :)))


согласен на 101%
но в тоже время, не нужно заново придумывать велосипед. :))
Ответить

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