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

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

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

Сообщение vitalik_1984 »

a_skr писал(а):и почему бы не воспользоваться другой готовой библиотекой LCD вместо встроенной в протеус?

Вы, вероятно, хотели сказать встроенной в CVAVR?
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

Скачайте версию не ниже 2.05.0. Там можно назначить ноги в свойствах проекта. А вот отключения R/W пока что нет. :cry:
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
C@at
Вымогатель припоя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

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

Сообщение C@at »

Кто уже сталкивался как отображать большие цифры на ЖКИ.
Наработки у людей по этому поводу есть...
Вот пример двух шрифтов
СпойлерИзображение
Изображение Изображение

Это взял здесь http://forum.chipmk.ru/index.php/topic/ ... C-hd44780/


Изображение


Изображение

А это здесь http://flank1er.blogspot.com/2013/01/lua_20.html

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

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

Сообщение vitalik_1984 »

Обычно собрать в массив. Можно сделать деревянно для начала. Типа создать двухмерный массив с буквами, как это делается для семисегментного индикатора, только не один байт, а шесть или четыре, зависит от того, какого размера цифра. И заполнять дисплей из этих массивов можно двумя способами либо по столбикам, либо по символам, от этого может зависеть как хранятся символы в массиве алфавита.
Уже в теме по дисплеям задавали подобные вопросы.
Аватара пользователя
C@at
Вымогатель припоя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

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

Сообщение C@at »

В теме по дисплеям то задавали вопросы, ответы не нашел.
Вот вывел ноль с помощью символов.
Спойлер

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

 #include <mega8.h>
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
typedef unsigned char byte;
/* table for the user defined character
   arrow that points to the top right corner */
flash byte chara[]={
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111
};
flash byte charb[]={
0b1111111,
0b1111111,
0b1111111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111
};
flash byte charc[]={
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b1111111,
0b1111111,
0b1111111
};
/* function used to define user characters */
                              void define_char(char flash *pc,unsigned char char_code)  //
                              { char ir,ar; ar=(char_code<<3) | 0x40;
                              for (ir=0; ir<8; ir++) lcd_write_byte(ar++,*pc++);  }; 

void main(void)
{
/* initialize the LCD for 2 lines & 16 columns */
lcd_init(16);

/* define user character 0 */
define_char(chara,1);
define_char(charb,2);
define_char(charc,3);
/* switch to writing in Display RAM */

while (1)
      {   /* loop forever */   
lcd_gotoxy(0,0);
  lcd_putsf("\x01\x02");     

lcd_gotoxy(0,1);
  lcd_putsf("\x01\x03");     

      }
}

Остальное в масивы и на экран никак не вяжется.(
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

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

Сообщение MS24 »

Ребят, пытаюсь проинициализировать SD карту, делаю всроде бы все как в хелпе написанно, но она упорно отвечает noinit даже когда не подключаю к контролллеру, может кто нибудь подскажет в чем дело?
Прикрепил код.
Вложения
SD_card.c
(1.45 КБ) 462 скачивания
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

C@at писал(а):В теме по дисплеям то задавали вопросы, ответы не нашел.
Вот вывел ноль с помощью символов.
==========
Остальное в масивы и на экран никак не вяжется.(

теперь создаем двухмерный массив из нужных символов
Спойлер

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

 
 char
[10][4];
char[0][]={ 0x01,0x02, 0x01,0x02};
 _by_num=0;
i=0;
 ///Выделяем это в функцию 
lcd_gotoxy(i*2,0);
lcd_puts(char[_by_num][0]);
lcd_puts(char[_by_num][1]);

lcd_gotoxy(i*2,1);
 lcd_puts(char[_by_num][2]);
lcd_puts(char[_by_num][3]); 
    
}
}
 

Ну примерный вид показал, с вас окончательный вариант :tea:
Аватара пользователя
C@at
Вымогатель припоя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

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

Сообщение C@at »

vitalik_1984 писал(а):Ну примерный вид показал, с вас окончательный вариант


Застрял на массиве, не понимает меня компилятор, а дальше еще с переменной i надо будет разобраться как она ротацию там делает?
Спойлер

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

 #include <mega8.h>
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
typedef unsigned char byte;
flash  char charR[10][5]={{0x01,0x02, 0x01,0x02},
                                   {0x20,0x01, 0x20,0x01} };
//flash  char charR[0][]={0x01,0x02, 0x01,0x02 };
 _by_num=0;
i=0;
/* table for the user defined character
   arrow that points to the top right corner */
flash byte chara[]={
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111
};
flash byte charb[]={
0b1111111,
0b1111111,
0b1111111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111
};
flash byte charc[]={
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b1111111,
0b1111111,
0b1111111
};
/* function used to define user characters */
                              void define_char(char flash *pc,unsigned char char_code)  //
                              { char ir,ar; ar=(char_code<<3) | 0x40;
                              for (ir=0; ir<8; ir++) lcd_write_byte(ar++,*pc++);  }; 

void main(void)
{
/* initialize the LCD for 2 lines & 16 columns */
lcd_init(16);

/* define user character 0 */
define_char(chara,1);
define_char(charb,2);
define_char(charc,3);
/* switch to writing in Display RAM */

while (1)
      {   /* loop forever */   

lcd_gotoxy(i*2,0);
lcd_puts(charR[_by_num][0]);
lcd_puts(charR[_by_num][1]);

lcd_gotoxy(i*2,1);
 lcd_puts(charR[_by_num][2]);
lcd_puts(charR[_by_num][3]); 

      }
}
kentik
Грызет канифоль
Сообщения: 252
Зарегистрирован: Пт апр 05, 2013 09:55:02

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

Сообщение kentik »

нубский вопросик:
Мк работает на 8 МГц. все хорошо, все работает.
поставил кварц 16 МГц, выставил фьюзы. стало все работать в два раза быстрее. визуально даже. картинка, например, прорисовывается быстрее на экране и т.д.
потом в CodeVision в настройках проекта выставил мк 16 МГц. прошил и опять стало работать со скоростью прежней, как при работе на 8 МГц.
ради прикола в настройках проекта выставил частоту мк 1 МГц, прошил - так летать стало нереально все быстро.

как так? в чем прикол не понимаю.
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

Всё очевидно. В программе есть задержки (вероятно, delay). При выставленной тактовой 8 мГц компилятор составляет эти задержи так, что они отсчитывают x тактов. Если поставить кварц на 16, а в компиляторе выставить 8, то x не изменится, а вот длительность такта уменьшится в два раза. То есть, в сумме МК отсчитаем меньше времени (в 2 раза).
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
qawsed113
Родился
Сообщения: 5
Зарегистрирован: Чт фев 03, 2011 10:38:00

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

Сообщение qawsed113 »

Всем ПриветЫ))
Нужно прошить ATmega328P с использованием проги CodeVisionAVR и программатора STK200/300. Все это я собрал. Ошибки исключены!!
Ниже фото прилагаю сево железа:
Изображение
И вот сама проблема, программатор ее видит, установил кварц на 8МГ, 5 вольт на контроллере есть, но при прошивке выдает такие ошибки:
Изображение Изображение
что я делаю не так?
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

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

Сообщение Vov123 »

Я не знаю какая там у вас проблемка,но вот,что видно из вашего скрина - галка стоит на "Program Fuse Bit(s),значится,что при первой попытки запрограммировать вы прошили FUSE под кварц на 12-16МГц,а потом запускаете его на кварце 8МГц.
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

И еще + к предыдущему сообщению,сначала надо обнулить чип,после чего прошивать. Вешайте другой кварц и будьте бдительны,изучите хотя бы как зашить,в инете это много где обсуждается.
Аватара пользователя
qawsed113
Родился
Сообщения: 5
Зарегистрирован: Чт фев 03, 2011 10:38:00

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

Сообщение qawsed113 »

Я делаю сброс чипа, снял галку с программирования фусов, и при программировании вылетает второй скрин, в чем проблема?
Я пользуюсь прогером Экстра ПИк+ но программы которые с ним работают не видят ATmega328((
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

Попробуйте уменьшить частоту программирования.
Ставим плюсы: )
Аватара пользователя
vovk69
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пн май 27, 2013 14:13:32

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

Сообщение vovk69 »

Скажите, если программа после разрешения прерываний престает выполняться в Протеусе:
напроч отсутствует lcd, таймер не работает... куда копать?
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

в сторону разрешенных прерываний и их обработчиков.
Ставим плюсы: )
Аватара пользователя
vovk69
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пн май 27, 2013 14:13:32

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

Сообщение vovk69 »

у меня прерывания запрещаются в функциях, а потом разрешаются в самом тексте проги ставлю разрешение на прерывание и ничего не работает:
atmega8 + Codevisionavr смотрю в Протеусе
Аватара пользователя
qawsed113
Родился
Сообщения: 5
Зарегистрирован: Чт фев 03, 2011 10:38:00

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

Сообщение qawsed113 »

Вот выбрасывает при стирании атмеги
Изображение
и что означает эта ошибка:
Изображение
все делаю как описано здесь http://proavr.narod.ru/07.htm
Использую версию CVAVR 3.04 Evaluation
Помогите пожалуйста :(
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

ibiza11 писал(а):Попробуйте уменьшить частоту программирования.

У него нельзя ее изменить.
Ответить

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