Страница 337 из 421

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

Добавлено: Пн апр 20, 2015 23:19:16
prw07
Во вторых. если в коде нигде ноги не определены, каким образом компилятор о них узнает ? Да и каким образом Вы вообще будете обращаться к этим ногам, не зная их ?
Вот и меня это тоже интересует. :))
2. Странный вопрос. Естественно, ногам, по которым Вы собрались манипулировать дисплеем, нужно определять направление.
Я бы не спрашивал, если бы сам не увидел.
Что бы не быть голословным вот:
Это весь код. Никакой инициализации портов.

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

#include <tiny2313a.h>
#include <delay.h>
#include <alcd.h>

void main(void)
{

lcd_init(8);

while (1)
      {
      delay_ms(50);
      lcd_putchar('A');

      }
}
во вложении проект с протеусом. Работает. Скорее всего CodeWizard в НЕХ добавляет инициализацию портов, но в коде этого мы не видим. Собственно это меня и интересовало.
1.ZIP
(75.66 КБ) 165 скачиваний

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

Добавлено: Пн апр 20, 2015 23:54:24
Аlex
Дык, ё-маё... Вы пользуетесь какой-то уже готовой библиотекой чтоли ? А сразу об этом написать ? :)

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

Добавлено: Вт апр 21, 2015 00:01:01
khomych
CAVR 2.05.0 хранит инфу о привязке ног LCD в файле *.prj, думаю при необходимости можно поправить, но скорее всего при закрытом проекте. либо в свойствах проекта. Configure project -> C compiler -> Libraries -> Alfanumetric LCD

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

Добавлено: Пт апр 24, 2015 15:39:50
Dr.Seldom
Всем мяв!

вопрос созрел.... перезрел.... и начал пахнуть....

протеус+модель LCD ILI9325+Mega64+CV

в СВ с помощью визарда определил куда и чего подключать, повторил все подключения в протеусе, но что-то на экранчике ничего не отображается (модель LCD рабочая, есть пример с андурило )..
пытаюсь вывести хоть строчку из примера с Хмега128

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

   // glcd_clear(); //при закомментированной строчке на ногах МК серые квадратики, хотя они сконфигурированы как выходы
                          //если убрать комментарий то синие и  красные и мигают ;)
glcd_setfont(font5x7);
glcd_setcolor(GLCD_CL_YELLOW);
glcd_outtextf("Ilitek ILI9325 Graphics Demo");
чего-то не хватает, а вот чего именно не понятно
сразу железе не могу пока попробовать, пока нету в наличии ;)

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

Добавлено: Вс апр 26, 2015 20:03:42
Dr.Seldom
разобрамшись :)
вопрос снят ;)

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

Добавлено: Пн апр 27, 2015 20:08:52
Dr.Seldom
Есть ли у кого опыт работы с дисплеем ILI9325 и CodeVision?
Модель в протеусе при инициализации встроенной в CV библиотекой не оживает, хотя в CV заявлено о поддержке этого дисплея, а найденные в инете примеры работают нормально.

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

Добавлено: Ср май 13, 2015 11:30:46
GRAD
Друзья помогите я в программировании ДУБ :shock: нужно читать/писать регистры микросхемы LMP91000 по I2C шине, при помощи ATMEGA8 и наблюдать это на 16x2 дисплее. Есть примитивный код в CVAVR для чтения/записи, пытаюсь дописать чтобы прочитаный байт появлялся на дисплее. Вопрос как прилетевший байт от ведомого положить в переменную чтоб он появился на дисплее?
Облазил все что можно было, пытался разобраться. Буду очень признателен всем ответившим!

i2c_start();
i2c_write(0xA0);
i2c_write(0x00);
i2c_start();
i2c_write(0xA1);
i2c_read(0x00);
тут что то надо дописать чтобы прочитанный байт отправился в переменную :facepalm:

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

Добавлено: Ср май 13, 2015 11:36:41
Gudd-Head
GRAD писал(а):как прилетевший байт от ведомого положить в переменную чтоб он появился на дисплее?
Смотря в каком виде вы ходите увидеть байт на дисплее.

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

Добавлено: Ср май 13, 2015 14:01:47
GRAD
Gudd-Head писал(а):
GRAD писал(а):как прилетевший байт от ведомого положить в переменную чтоб он появился на дисплее?
Смотря в каком виде вы ходите увидеть байт на дисплее.
В шестнадцатеричном виде надо

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

Добавлено: Ср май 20, 2015 16:52:19
gis
Подскажите как в cvavr ножки из разных портов собрать в один байт (м.б. с помощью #define или чего-то еще). Устал уже искать...

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

Добавлено: Ср май 20, 2015 19:07:53
uk8amk
С помощью битовых масок и операций сдвига.

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

Добавлено: Чт май 21, 2015 14:13:05
kolobokus
Не получается отформатировать выводимую на LCD через sprintf строку.
Мне требуется, чтобы при выводе числа вида ХХ.Х (например 34.7) оно выравнивалось вправо,
а слева не дополнялось нулями, когда целая часть меньше заданной ширины "2".
Если использовать числа int, искусственно формируя число с "плавающей точкой", например так:
unsigned int I; sprintf(current,"%2u.%u A",I/100,(I%100+5)/10);
то все получается, но этот код очень долго выполняется.
А вот при конфигурировании проекта в float и выводе в виде:
float mAh; sprintf(capacity,"%2.1f Ah ",mAh/1000);
число отказывается выравниваться по правому краю, хотя код выполняется значительно быстрее (в 6 раз!)
Как выровнить по правому краю, выводя float?

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

Добавлено: Чт май 21, 2015 15:30:05
ARV
"% 6.1f" не?

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

Добавлено: Чт май 21, 2015 17:16:25
kolobokus
Не нашел соответствующий смайлик... где кот себя по башке лупит.
Почему-то считал, что "ширина" задает только размер контейнера до точки... Спасибо!

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

Добавлено: Чт май 21, 2015 17:59:23
WiseLord
Кстати, в CodeVision использование sprintf тоже увеличивает размер прошивки сразу на пару килобайт (как в avr-gcc)?

Никогда не использовал эти функции на МК (из stdlib и прочих) из-за их "жирности".

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

Добавлено: Чт май 21, 2015 18:51:01
prw07
Увеличивает и существенно. Если тини2313 использовать, то пара функций и уже не лезет.

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

Добавлено: Сб май 23, 2015 22:31:15
gis
Подскажите cvavr ругается на объявление функции:

void ind_out(unsigned char a,b)
{
PORTC|=(1<<b) ;
IND_A = indikator [a] & 1 ;
IND_B = indikator [a] & (1<<1);
IND_C = indikator [a] & (1<<2);
IND_D = indikator [a] & (1<<3);
IND_E = indikator [a] & (1<<4);
IND_F = indikator [a] & (1<<5);
IND_G = indikator [a] & (1<<6);
PORTC&=~(1<<b);
}

пишет declaration syntax error когда убираю вторую переменную ошибка пропадает. В чем причина?

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

Добавлено: Сб май 23, 2015 22:44:21
Аlex
Дак Вы тип второй переменной не указываете.

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

Добавлено: Пн июн 01, 2015 17:20:49
DC_DC
Всем доброго времени суток. Пожалуста помогите мне кто нибудь разобратся. Я сделал проэктик в CAVR и хочу заставить мою Tiny2313 что бы на ножке OCA0A был ШИМ. Например я выставляю в мастере частоту ШИМа на 125 Кгц. а вместо этого у меня на выходе на много меньше. Даже вот когда я выставляю частоту без делителя то вместо 8 Мгц у меня всего лишь около 31 Кгц. У меня в этом деле очень мало знаний. Вот сама собственно и программа. Буду очень благодарен за помощью

Chip type : ATtiny2313
AVR Core Clock frequency: 8,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/

#include <tiny2313.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x07;

// Port D initialization
// Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=0 State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x20;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x7F;
OCR0B=0x7F;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
DIDR=0x00;

while (1)
{


}
}

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

Добавлено: Вт июн 02, 2015 06:58:51
prw07
а вместо этого у меня на выходе на много меньше
а где это видно? в смысле симулятор показывает или готовое устройство?