Страница 262 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср май 22, 2013 22:16:15
vitalik_1984
a_skr писал(а):и почему бы не воспользоваться другой готовой библиотекой LCD вместо встроенной в протеус?
Вы, вероятно, хотели сказать встроенной в CVAVR?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср май 22, 2013 23:29:30
*Trigger*
Скачайте версию не ниже 2.05.0. Там можно назначить ноги в свойствах проекта. А вот отключения R/W пока что нет.

Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт май 23, 2013 00:06:03
C@at
Кто уже сталкивался как отображать большие цифры на ЖКИ.
Наработки у людей по этому поводу есть...
Вот пример двух шрифтов
Спойлер


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


А это здесь http://flank1er.blogspot.com/2013/01/lua_20.html
Вот только не понимаю как это собрать в массив и отображать на экране
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт май 23, 2013 08:50:42
vitalik_1984
Обычно собрать в массив. Можно сделать деревянно для начала. Типа создать двухмерный массив с буквами, как это делается для семисегментного индикатора, только не один байт, а шесть или четыре, зависит от того, какого размера цифра. И заполнять дисплей из этих массивов можно двумя способами либо по столбикам, либо по символам, от этого может зависеть как хранятся символы в массиве алфавита.
Уже в теме по дисплеям задавали подобные вопросы.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт май 23, 2013 10:33:48
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");
}
}
Остальное в масивы и на экран никак не вяжется.(
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт май 23, 2013 12:42:49
MS24
Ребят, пытаюсь проинициализировать SD карту, делаю всроде бы все как в хелпе написанно, но она упорно отвечает noinit даже когда не подключаю к контролллеру, может кто нибудь подскажет в чем дело?
Прикрепил код.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт май 23, 2013 20:52:42
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]);
}
}
Ну примерный вид показал, с вас окончательный вариант

Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт май 23, 2013 23:38:06
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]);
}
}
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб май 25, 2013 10:17:25
kentik
нубский вопросик:
Мк работает на 8 МГц. все хорошо, все работает.
поставил кварц 16 МГц, выставил фьюзы. стало все работать в два раза быстрее. визуально даже. картинка, например, прорисовывается быстрее на экране и т.д.
потом в CodeVision в настройках проекта выставил мк 16 МГц. прошил и опять стало работать со скоростью прежней, как при работе на 8 МГц.
ради прикола в настройках проекта выставил частоту мк 1 МГц, прошил - так летать стало нереально все быстро.
как так? в чем прикол не понимаю.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб май 25, 2013 13:35:38
*Trigger*
Всё очевидно. В программе есть задержки (вероятно, delay). При выставленной тактовой 8 мГц компилятор составляет эти задержи так, что они отсчитывают x тактов. Если поставить кварц на 16, а в компиляторе выставить 8, то x не изменится, а вот длительность такта уменьшится в два раза. То есть, в сумме МК отсчитаем меньше времени (в 2 раза).
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 11:47:28
qawsed113
Всем ПриветЫ))
Нужно прошить ATmega328P с использованием проги CodeVisionAVR и программатора STK200/300. Все это я собрал. Ошибки исключены!!
Ниже фото прилагаю сево железа:

И вот сама проблема, программатор ее видит, установил кварц на 8МГ, 5 вольт на контроллере есть, но при прошивке выдает такие ошибки:

что я делаю не так?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 11:57:04
Vov123
Я не знаю какая там у вас проблемка,но вот,что видно из вашего скрина - галка стоит на "Program Fuse Bit(s),значится,что при первой попытки запрограммировать вы прошили FUSE под кварц на 12-16МГц,а потом запускаете его на кварце 8МГц.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 12:00:34
Сериг
И еще + к предыдущему сообщению,сначала надо обнулить чип,после чего прошивать. Вешайте другой кварц и будьте бдительны,изучите хотя бы как зашить,в инете это много где обсуждается.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 12:09:21
qawsed113
Я делаю сброс чипа, снял галку с программирования фусов, и при программировании вылетает второй скрин, в чем проблема?
Я пользуюсь прогером Экстра ПИк+ но программы которые с ним работают не видят ATmega328((
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 13:36:14
ibiza11
Попробуйте уменьшить частоту программирования.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 14:29:09
vovk69
Скажите, если программа после разрешения прерываний престает выполняться в Протеусе:
напроч отсутствует lcd, таймер не работает... куда копать?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 14:48:49
ibiza11
в сторону разрешенных прерываний и их обработчиков.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 15:20:58
vovk69
у меня прерывания запрещаются в функциях, а потом разрешаются в самом тексте проги ставлю разрешение на прерывание и ничего не работает:
atmega8 + Codevisionavr смотрю в Протеусе
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн май 27, 2013 15:28:08
qawsed113
Вот выбрасывает при стирании атмеги

и что означает эта ошибка:

все делаю как описано здесь
http://proavr.narod.ru/07.htm
Использую версию CVAVR 3.04 Evaluation
Помогите пожалуйста

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт май 28, 2013 12:51:08
Сериг
ibiza11 писал(а):Попробуйте уменьшить частоту программирования.
У него нельзя ее изменить.