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

Обсуждаем контроллеры компании Atmel.
flimp
Прорезались зубы
Сообщения: 242
Зарегистрирован: Вс май 24, 2015 19:10:41

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

Сообщение flimp »

то ли лыжи не едут, то ли я не такой..., ну понятно какой.
в общем теперь с самой библиотекой проблемы:
Спойлер

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

/*
	it is AVR driver for LCD used in nokia 1616
	based on STM version from http://robobuild.ru/ndex.php?itid=2
	compilation with https://sourceforge.net/projects/nokiasuperbreak/

	translated and modified by axillent@gmail.com

	you need to configure before including this file:
	#define LCD_PORT	PORTC	// output port
	#define LCD_DDR	DDRC		// port configuration
	#define LCD_RST	PINC0	// reset pin
	#define LCD_CS		PINC1	// slave select pin
	#define LCD_SDA	PINC2	// data pin
	#define LCD_CLK		PINC3	// clock pin

	if by some reason you got slow display you will probably need to define SPI delay in microseconds
	#define LCD_SPI_DELAY	10

	normal orientation of nokia1616 - y is long side, x is short, (0, 0) is most closest to the connector left side
	if you want to have display be rotated clock vise 90 degrees use this:

	#define LCD_ROTATE90

*/

#ifndef _NOKIA1616_H
#define _NOKIA1616_H

#if !defined(LCD_PORT) || !defined(LCD_DDR) || !defined(LCD_RST) || !defined(LCD_CS) || !defined(LCD_SDA) || !defined(LCD_CLK)
#error You need to define ports & pins for LCD usage
#endif

#include <mega328p.h>

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// constants & types definition

#define LCD_CTRL_WIDTH	129
#define LCD_CTRL_HEIGHT	129
#define LCD_CTRL_X_OFFSET	2
#define LCD_CTRL_Y_OFFSET	1

inf typedef uint16_t rgb_color16bit;   ТУТ ОЧЕНЬ ПЛОХО РУГАЕТСЯ

// pack r & g & b into color structure
#define rgb_color_pack(r, g, b)			((rgb_color16bit)r << 11) | ((rgb_color16bit)g << 5) | ((rgb_color16bit)b)
// repack from 16bit presentation into color structure
#define rgb_color_repack(color)			(rgb_color16bit)color
#define rgb_color_red(color)			(color >> 11) | 0x1F
#define rgb_color_green(color)			(color >> 5) | 0x3F
#define rgb_color_blue(color)			(color | 0x1F)

#define LCD_VGA_BLACK		rgb_color_repack(0x0000)
#define LCD_VGA_WHITE		rgb_color_repack(0xFFFF)
#define LCD_VGA_RED			rgb_color_repack(0xF800)
#define LCD_VGA_GREEN		rgb_color_repack(0x1FE0)
#define LCD_VGA_BLUE		rgb_color_repack(0x001F)
#define LCD_VGA_SILVER		rgb_color_repack(0xC618)
#define LCD_VGA_GRAY		rgb_color_repack(0x8410)
#define LCD_VGA_MAROON		rgb_color_repack(0x8000)
#define LCD_VGA_YELLOW		rgb_color_repack(0xFFE0)
#define LCD_VGA_OLIVE		rgb_color_repack(0x8400)
#define LCD_VGA_LIME		rgb_color_repack(0x07E0)
#define LCD_VGA_AQUA		rgb_color_repack(0x07FF)
#define LCD_VGA_TEAL		rgb_color_repack(0x0410)
#define LCD_VGA_NAVY		rgb_color_repack(0x0010)
#define LCD_VGA_FUCHSIA		rgb_color_repack(0xF81F)
#define LCD_VGA_PURPLE		rgb_color_repack(0x8010)

// clock vise rotation
// normal is the default orientation of selected LCD
enum { LCD_ORIENTATION_NORMAL=0, LCD_ORIENTATION_90, LCD_ORIENTATION_180, LCD_ORIENTATION_270 };

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// user functions definition

/**
* Sends command to lcd
*
* @data command to be send
*/
void nlcdSendCmd(uint8_t data);

/**
* Sends data to lcd
*
* @data data to be send
*/
void _nlcdSendData(uint8_t data); И ТУТ ОЧЕНЬ ПЛОХО РУГАЕТСЯ

/**
* inittialize lcd
*/
void nlcdInit();

/**
* Clear display by specified color
*
* @color color to use for clear
*/
void nlcdClear();

/**
* CSetting background color
*
* @color background color to be set
*/
void nlcdSetBackgroundColor(rgb_color16bit color);

void nlcdGotoCharXY(uint8_t x, uint8_t y);

void nlcdCharXY(uint8_t x, uint8_t y, rgb_color16bit color, char c);

void nlcdChar(rgb_color16bit color, char c);

void nlcdString(rgb_color16bit color, const char* str);

void nlcdStringXY(char x, char y, rgb_color16bit color, const char* str);

void nlcdStringP(rgb_color16bit color, const char* str);

void nlcdStringXYP(char x, char y, rgb_color16bit color, const char* str);

void nlcdSetFont(const uint8_t* font);

char nlcdFontLastChar();

char nlcdFontFirstChar();

void nlcdSetOrientation(uint8_t or);

uint8_t nlcdGetWidth();
uint8_t nlcdGetHeight();

#ifndef LIB_NOINLINE
#include "nokia_lcd_driver_1616.c"
#endif

#endif
ругается в двух случаях:
Error: C:\cvavr\my program display\nokia_lcd_driver_1616.h(43), #included from: display.c: '(' expected
и
Error: C:\cvavr\my program display\nokia_lcd_driver_1616.h(82), #included from: display.c: declaration syntax error

p.s. тяжело разбираться, когда только начал. будь рабочая библиотека я бы еще может и смог бы, а так рискуя нарваться на критику все же вновь прошу помощи.

уважаемый Аlex, я объясню вам - да, возможно я слегка туповат, но изучение с cvavr я начал со своего первого проекта давилки, который почти заканчиваю, но как всегда лучшее враг хорошего.
я пошел не от начала и просмотрев готовые примеры мигающих светодиодов и прочего очень простого кода взялся за написание кода под биполярный шаговик, где справился сам пусть и не без некого геморроя, и там мне никто не подсказывал, что и куда вставлять. а это замечу был мой самый первый опыт общения с cvavr, и я справился, и теперь, забегая вперед, понимаю, что там и к чему.
просто потому, что там был намек на готовые примеры и по ним не составило очень большого труда разобраться, а пересобрать под свои нужны было уже делом логики.
но лучшее враг хорошего и я задумался подключить ко всей этой конструкции дисплей, подключить батарейку и развести питание на 3,3, 5 и 12 вольт. все тут получается, кроме подключения дисплея.
и тут я так же взялся за готовый пример, что бы разобрать его по косточкам, как он заработает, но вот беда - ни один готовый пример не работает вообще. поэтому я и не могу в этом разобраться. с экранами оказалось все куда, как сложнее.
если не желаете помогать, то хотя бы не обзывайтесь пожалуйста.
можете по моему нику поискать тот самый проект, мне там подсказывали лишь направление, как делаете сейчас вы, но там было проще и я понимал то, что мне говорили, сейчас же я не понимаю, а разбираться с нуля по мануалу для меня не подъемно, а вот взять пример, на его основе уже каждую строчку прошерстить на вопрос почему так, а не иначе уже подъемно и понятно.
я только учусь.
Последний раз редактировалось flimp Пн апр 04, 2016 14:36:12, всего редактировалось 4 раза.
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Аlex писал(а):Ссылочку можно ?
пожалуйста, вот примерно середина процесса моего поиска помощи, дальше есть и результаты: http://radiokot.ru/forum/viewtopic.php? ... 0#p2349890
Аlex писал(а):И что после них у человека отложится в голове ?
мне все равно
Аlex писал(а):И так будет до тех пор, пока он не научится пользоваться литературой.
нет, так будет пока у меня не кончится терпение. когда кончится - я перестану отвечать.
Аlex писал(а):Или Вы возьмёте на себя обязательства - в течении всей его жизни делать всё за него ?
с чего это вдруг?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

ARV писал(а):с чего это вдруг?!
Ну Вы же против принципов обучения. Вы за готовые решения. А кто потом будет ему "помогать", если
ARV писал(а):мне все равно
и
ARV писал(а):я перестану отвечать
? :)
Сделая один...два...три раза всё за человека, вместо того, чтобы ткнуть носом в конкретное место литературы, Вы расслабляете его, давая надежду на дальнейшую такую же "помощь".
"Цель воспитания детей родителями - обходиться без родителей" (c)
Если для Вас цель воспитания - сделать Маменького сыночка, то я в Вас разочарован.
flimp писал(а):в общем теперь с самой библиотекой проблемы:
А что за библиотека ? Ссылку дайте на неё.
не обзывайтесь пожалуйста
Покажите, где я это сделал ?

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

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

Сообщение ARV »

Аlex писал(а):Если для Вас цель воспитания - сделать Маменького сыночка, то я в Вас разочарован.
вы ни чего не путаете? с каких пор я стал воспитателем? за воспитанием каждый может обратиться к папе-маме, в крайнем случае, в детский сад можно сходить.

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

можешь и хочешь ответить на вопрос - ответь на вопрос
можешь, но не хочешь отвечать - молчи, не воспитывай
не можешь, но хочешь ответить - сдержись, не увеличивай энтропию

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

Мой уютный бложик... заходите!
Реклама
Эиком - электронные компоненты и радиодетали
flimp
Прорезались зубы
Сообщения: 242
Зарегистрирован: Вс май 24, 2015 19:10:41

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

Сообщение flimp »

flimp писал(а):в общем теперь с самой библиотекой проблемы:
А что за библиотека ? Ссылку дайте на неё.

вот, прикладываю мой проект, там же все библиотеки.
при компиляции начинается бяка.
Вложения
my program display.rar
мой проект для вывода: "Hello World"
(216.94 КБ) 190 скачиваний
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

flimp писал(а):вот, прикладываю мой проект
Не нашёл там проекта CVAVR. Только Atmel Studio, который у меня почему-то не открывается - вылетает какая-то неведомая мне ошибка :dont_know:
Реклама
flimp
Прорезались зубы
Сообщения: 242
Зарегистрирован: Вс май 24, 2015 19:10:41

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

Сообщение flimp »

to Аlex, очень и очень странно, вот оно же:
СпойлерИзображение
самый что ни на есть cvavr v.3.12
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Ага, нашёл. Извиняюсь за невнимательность.
По всей видимости, эта библиотека не подходит к CVAVR, слишком много в ней всего, неподходящего по синтаксису к CV.
Те 2 ошибки я поправил, но повылезало ещё куча всякой бяки :
СпойлерИзображение
2016-04-04_17-41-10.png
(150.9 КБ) 554 скачивания
которую исправлять замучаешься.
Так что, ищите что-нибудь конкретно для CVAVR.
flimp
Прорезались зубы
Сообщения: 242
Зарегистрирован: Вс май 24, 2015 19:10:41

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

Сообщение flimp »

спасибо вам, вот это номер.
а я то думаю почему в статьях писалось про codevisionavr, а тут ничего и никак не работает, плюс эти плюсы...
я уже и их поправил, в цикл вставил вместо i++ "i=i+1;"
да и много чего еще, а все лезут и лезут ошибки.

p.s. хотя мой уровень новичка не позволяет мне еще с полным пониманием относиться ко всему, что делаю, некоторые вещи делаю пока еще потому, что другие так делают, по примерам.
но мы же не химики, у которых, если не знаешь, что делаешь, то долго не живешь.)
буду искать библиотеку nokia 1616 именно под codevisionavr, хотя там, где я их брал - писали, что они именно под него.
p.s.s. над этой темой бьюсь уже долго, поэтому сюда пишу лишь в крайних случаях.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

i++ зря "исправляли". Это стандартный оператор языка Си и любой компилятор должен его поддерживать, даже cvavr.
Ну вот, всегда найдётся человек, который выложит всё на блюдечке, избавив другого от тяжкого и мучительного занятия - читать и думать
Если бы подобные особенности компиляторов было бы также легко найти, как примеры кода из даташита... Тут правильно сделали, что подсказали особенность оформления.
flimp
Прорезались зубы
Сообщения: 242
Зарегистрирован: Вс май 24, 2015 19:10:41

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

Сообщение flimp »

господа, нашел еще один вариант под cvavr, чуть чуть подправил, и все казалось бы без ошибок, если кликать на compile the project, однако если дальше по иконкам, то находит ошибку в строке: ".SET power_ctrl_reg=smcr" подключаемой 1616_S_SPI.asm в частности он не понимает, что такое smcr.
я ему пишу "unsigned char smcr;" но далее он как будто стирает эту строку и возвращается к первоначальному варианту файла и не дает сделать .hex
в чем дело?
там библиотека как бы разбита на atmega8 и 328, мне нужна 328
Вложения
1616_s_SPI.rar
(55.56 КБ) 168 скачиваний
flimp
Прорезались зубы
Сообщения: 242
Зарегистрирован: Вс май 24, 2015 19:10:41

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

Сообщение flimp »

отбой тревоги.
забыл в свойствах проекта изменить микроконтроллер.

добавлено:
только все равно не работает.
либо я накосячил с распайкой, либо либо я убил дисплей пару раз воткнув его в 5v шину вместо 3,3v, либо дисплей от nokia 105 ни разу не совместим с nokia 1616.
KVAtt
Родился
Сообщения: 10
Зарегистрирован: Ср мар 09, 2016 12:22:22

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

Сообщение KVAtt »

ДВС, форумчане. возможно-ли в cv пользоваться 64 битной арифметикой? спасибо.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

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

Сообщение uk8amk »

У меня в справке по третьей версии написано, что только 32 бита.
The current version of the CodeVisionAVR C compiler has the following limitations:
· the long long, double, _Complex and _Imaginary data types are not yet supported
Upd.
Оказывается была попытка сделать хоть какой-то костыль для целочисленной математики:
http://www.hpinfotech.ro/cvavr_revision3.html
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

KVAtt писал(а):ДВС, форумчане
люди, пишущие ДВС, СПС и ОК, на что вы тратите ту уйму освободившегося от писанины времени?! :shock:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
KVAtt
Родился
Сообщения: 10
Зарегистрирован: Ср мар 09, 2016 12:22:22

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

Сообщение KVAtt »

Спасибо, есть там хидер мат64, но в эвалюшн 3.24 тупо не реагирует на инклюд, а в 3.12 пишет, что доступно только в версии профессионал, а такой версии я не увидел-только стандарт и эдвансед . И еще вопрос есть: третья версия не читает библиотечные файлы либ. во второй никаких проблем, что-то я не так делаю?
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

Спойлер
ARV писал(а):люди, пишущие ДВС...
Ну пока наберешь "двигатель внутреннего сгорания" - пальцы заболят :)
Изображение
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Jack_A писал(а):Ну пока наберешь "двигатель внутреннего сгорания" - пальцы заболят :)
Хорошо, если это "двигатель внутреннего сгорания". А если это "диссеминированное внутрисосудистое свёртывание" ? Так можно и травму языка нанести читающим :))
KVAtt
Родился
Сообщения: 10
Зарегистрирован: Ср мар 09, 2016 12:22:22

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

Сообщение KVAtt »

Мне очень понравилось толкование дб от Лаврова: вместо должно быть получилось Д Б...ь
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

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

Сообщение DataLife »

Доброго времени суток, господа!
Не получается толком зайти в режим сна (Power-down). ATmega8(L)
Дело в том, что заходить и выходить нужно по нажатию кнопки, которая держится на INT0.
Параллельно, на INT1 висят часы DS1307, вернее их 1 Гц для считывания времени.

На кнопке есть подтяжка (как программно, так и резюком на плате).

Вход в режим сна делаю так:
Спойлерif (SLEEP_BUTTON == 0)
{
delay_ms(100);
if (SLEEP_BUTTON == 0)
{
// Настройка режима сна
MCUCR|=0b10100000; // Sleep ON, Power-down

rtc_init(0,0,0); // отключаем 1 Гц от DS1307

/**Выключаем прерывания по SQW, включаем по кнопке INT0**/

GICR|=0x40;
MCUCR=0x00;
GIFR=0x40;

lcd_clear();
lcd_gotoxy(4,0);
lcd_putsf("Power OFF");

#asm("sei")
#asm("sleep")

/** ДЕЛАЕМ СБРОС МК СТОРОЖЕВОЙ СОБАКОЙ (после выхода из сна) **/

WDTCR=0x1C; // включаем сторожа
while (1); // заставляем МК зависнуть
}
}
То есть: в начале программы прерывания по INT0 запрещены, разрешены прерывания от INT1 (тикает 1 Гц). При нажатии на кнопку, выключаем тикалку 1 Гц и запрещаем прерывания от INT1, разрешаем от INT0. Выводим на экран, что питание выключено и засыпаем. После пробуждения перезагружаемся от сторожевого таймера.

Проблема в том, что МК в принципе не уходит в режим сна. Пробовал ставить задержки, чтобы исключить случай, когда мы зашли в режим сна, а кнопка ещё не отжата. Нет эффекта. Мк просто перезагружается при нажатии на "SLEEP_BUTTON".

Но странно ещё то, что программа не доходит до написания строки "Power OFF". Опять же пробовал ставить задержки, чтобы словить это.

Даже провод SQW от DS1307 выбрасывал, думал, что он виной выхода из спячки. Но нет...

Подскажите, как быть? Где косяк?
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Ответить

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