Страница 1 из 1

st7920 CVAVR

Добавлено: Вт янв 01, 2019 23:43:33
CAT86
Привет всем :))
подскажите, как вывести температуру или время на дисплее ST7920 cvavr

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 08:24:32
Nijka
Надо найти в сети пример, разобраться и сделать так же.

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 10:29:49
CAT86
Взял чей то пример:

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

 
#include <mega32a.h>
#include <glcd.h>
#include <font5x7.h>

unsigned char VideoVarCache [50];
           unsigned char BOSS;


while (1)
      { 
   BOSS=10; 

sprintf(VideoVarCache, "%d", BOSS); 

}


 
и.... Не чего :dont_know:

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 11:10:11
Jack_A
Наверно, надо дисплей предварительно проинициализировать. Не спрашивай меня как - я с CVAVR не работаю,но другие люди знают, видимо.

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 11:47:10
Nijka
[uquote="CAT86",url="/forum/viewtopic.php?p=3539594#p3539594"]Взял чей то пример... и.... Не чего[/uquote]
Возьми другой пример, хороший. А что ты сам сделал, чтобы твой "пример" заработал?

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 14:11:26
pyzhman
Навскидку https://habr.com/post/213459/
А лучше всего проштудировать даташит.

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 15:09:52
alex-wolf
[uquote="CAT86",url="/forum/viewtopic.php?p=3539466#p3539466"]Привет всем :))
подскажите, как вывести температуру или время на дисплее ST7920 cvavr[/uquote]


Добрый вечер!

обзор на индикатор на контроллере "ST7920"
делал обзор
https://vk.com/video-105366674_45623902 ... 953232dd87

мой вариант, без вывода графики и адресации на Русские буквы
у меня индикатор 122х32 точки.
обращение/общение через шину "SPI"
hyg122x32_09c.c
(3.57 КБ) 248 скачиваний

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


////пояснение тип переменной- размерность "unsigned char" эквивалентно/аналогично/синоним "uint8_t" без знаковой 8бит

	unsigned char lcd_buffer[];



	sprintf(lcd_buffer,"%2u:%02u:%02u",hour,minut,sec); 
	lcd_display(0,0,lcd_buffer);

	//////////////////////////день недели/// 0="";   1="Su"; 2="Mo";  3="Tu"; 4="We;  5="Th";  6= "Fr";  7="Sa"
	static unsigned char *eng_str_day[] = {"", "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"};
	
	sprintf(lcd_buffer,"%2u/%02u/20%02u %s", date, month, year, eng_str_day[day]}
	lcd_display(1,0,lcd_buffer);


--
удачи.

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 15:18:14
Nijka
[uquote="pyzhman",url="/forum/viewtopic.php?p=3539754#p3539754"]...проштудировать...[/uquote] Шутите! Похоже, ТС хочет, чтобы за него и в гугле поискали, и разжевали, и в ротик положили.
Этих примеров в сети как грязи! Да что там в сети, примеры даже в компьютере ТС есть, и даже не один - в папке CVAVR.

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 16:20:23
pyzhman
[uquote="Nijka",url="/forum/viewtopic.php?p=3539799#p3539799"]...в папке CVAVR.[/uquote]
Может, у него версия не та.

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 17:51:55
alex-wolf
у разработчиков - "CVAVR" - ПАРАНОЙЯ, они ШИФРУЮТ свои библиотечки (особенно для работы с индикаторами)

актуальный список для 3.34! версии
ILI9325, ILI9328, ILI9340, ILI9341, RA8875, S6D1121, SSD1289, SSD1963, SSD2119 (color TFT LCD), KS0108, SED1335, S1D13700, SED1520, SED1530, SH1101A (OLED), SSD1303 (OLED), SSD1305 (OLED), SSD 1306 (OLED), SSD1309 (OLED), SSD1322 (OLED), SPLC501C, ST7565, ST7567, ST7920, ST7793, T6963C, UC1608, UC1610, UC1701, XG7100 and PCD8544 (Nokia 3310, 5510) controllers

так что приходится изобретать свой велосипед!

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 21:02:17
Nijka
Что значит "шифруют"? Зачем "изобретать свой велосипед"? Чем вас не устраивают библиотеки от разработчиков?
В User Manual, который, кстати, тоже устанавливается(копируется) на комп вместе с cvavr 3 версии, функции для контроллера ST7920 на 6 листах расписаны. С примерами. В чем проблема-то?

Re: st7920 CVAVR

Добавлено: Ср янв 02, 2019 21:42:19
alex-wolf
во первых -
у меня версия 2.05 (и меня она устраивает хотя есть некоторые особенности/глюки например: не умеет работать с много-поточной/процессорной, указания на работу с портами(атмега128) F только через)
как пример:
...
if (num == 1) {PORTF |= (1<<3); DDRF = DDRF |(1<<3); }
else {PORTF &= ~(1<<3); DDRF = DDRF |(1<<3);};
...


во вторых -
попробуй открыть файл библиотечке
(путь на диске куда установлен cvavr)\lib\alcd_ks0073.lib
первое что увидишь будет строка - "CVAVRLIB "
взгляни на файлы - "sdcard.lib";"ff.lib".

в третих -
особенное/специфическое/громоздкое и жесткое привязанность к портам(не нужны некоторые "пины" или их катастрофически мало).

в четвёртых -
разве не возникало желание, разобрать и "посмотреть изнутри" как оно устроенно, а, не слепое! без понимания процесса происходящего.

Re: st7920 CVAVR

Добавлено: Чт янв 03, 2019 05:00:53
Nijka
Сами создаете себе проблемы.
1. Обновитесь до более свежей версии CVAVR. Откроете для себя много нового. На WIN95 вы же не сидите до сих пор?
3. О чем это? Любой пин ST7920, например, можно привязать к любому пину любого порта.
2,4. Зачем лезть в готовые библиотеки?! :shock: Ими надо пользоваться! Не нравятся - пишите свои, если готовое не устраивает. Вы же не ковыряетесь в самом CVAVR? А чтобы узнать, "как оно изнутри устроено" - пишите исключительно на ассемблере. Надолго хватит? :)))

Вот что-то ТС примолк. Как успехи? Получилось?

Re: st7920 CVAVR

Добавлено: Чт янв 03, 2019 06:48:10
pyzhman
[uquote="alex-wolf",url="/forum/viewtopic.php?p=3540047#p3540047"]...она устраивает...[/uquote]
Перешагни через устраивает. 2-ка будет казаться детским садом.

Re: st7920 CVAVR

Добавлено: Чт янв 03, 2019 10:36:16
CAT86

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


#include <mega32a.h>


#include <glcd.h>
#include <font5x7.h>
#include <i2c.h>
#include <delay.h>
#include <ds3231.h>
#include <stdio.h>
#asm
   .equ __i2c_port=0x15 ;PORTC
   .equ __sda_bit=1
   .equ __scl_bit=0
#endasm

unsigned char hour, minut, sec;
unsigned char lcd_buffer[10];


void main(void)
{

GLCDINIT_t init;
init.readxmem=NULL;
init.font=font5x7; 
init.writexmem=NULL;
glcd_init(&init);
i2c_init();
rtc_init(0, 0, 0);


 #asm("sei")

while (1)
      { 
      
      rtc_get_time(&hour, &minut, &sec);
             

      sprintf(lcd_buffer,"%2d:%02d:%02d",hour, minut, sec);
      lcd_puts(lcd_buffer); //часы отображаются, но полностью заполнен дисплей часами

       //lcd_display(0,0,lcd_buffer);Error:  undefined symbol 'lcd_display'
       //lcd_puts(0,0,lcd_buffer);Error:  too many arguments in function call

}
};


Re: st7920 CVAVR

Добавлено: Чт янв 03, 2019 23:05:31
CAT86
скажите, как позиционировать часы по дисплею? :oops:
с простым текстом всё понятно:
glcd_settextjustify(2,1);

а вот часы в определенное место... с этим проблема. :dont_know: