Библиотека uc1601s
- Войдите на сайт для отправки комментариев
Всем привет. Я еще мало владею с++. Искал библиотеку для работы с контроллерами uc1601s. Нашел но для другой платформы.
Библиотека - http://svetomuzyka.narod.ru/project/UC1601s.html
Связавшись с автором, он сказал мне, что его библиотеку можно легко переписать под ардуину. Нужно лишь состыковать i2c интерфейс.
Правильно ли я понял. Что нужно адаптировать эти команды под ардуино стреду?
void I2C_Open (void); // настройка MSSP модуля
void i2c_idle (void); // проверка на готовность I2C устройства к работе
void i2c_stop (void); // формирование стоп
char i2c_start (char adres, char C_D, char R_W); // адрес устройства и управление младшими битами
char i2c_restart (char adres, char C_D, char R_W);
char i2c_write (char data); //запись байта
char i2c_read_ack (void); //чтение с подтвеждением
char i2c_read_noack (void); //чтение без подтеждения
Вообщем то пролазил кучу форумов. Нашел только одну ссылку где у поминают этот контроллер к ардуине. Но ничего годного там небыло... Как переписать данную бибу под ардуину тоже не понял.
А Wire чем не угодила?
А можно подробнее?
Подробнее некуда
https://www.arduino.cc/en/Reference/Wire
Я о том. Что напрямую с помощью этой библиотеки общаться с дисплеем. ?
Ну тебя дисплей на twi/i2c? Если да, то либы для всяких подобных устройств обычно с помощью этой либы и мутятся.
Все. Понял вас)
Ищу человека. Котррый сможет переписать данную библиотеку под ардуину. Конечно не бесплатно.
попробую переписать.
Общая концепция того, что получилась тут https://yadi.sk/d/V5BD1Dvq3CRtfj
Не проверял на компилируемость, ошибки и прочую ересь. Возможно придется допилить.
Быстро вы)) Я сколько тыкал нифига не смог... надо учиться)
Попробывал компильнуть. Ругается на функцию clear();
Но больше всего ошибок на переменные.
Делал в двух версиях 1.0.6 и последней 1.8.1
Нде. сколько ковыряюсь, никак не могу убрать ошибки. Дурья голова....
http://www.arduinolibraries.info/libraries/u8glib не пробовал?
Там есть uc1601, но это не тот же самый коетроллер что uc1601s
Пытаюсь с чистого листа написать эту библиотеку основываясь на том, что скинул NeiroN. Начал с иницилизации дисплея. и иде выдает ошибку. которую я никак не могу понять. Может кто поможет?
tic154a.c
#include "tic154a.h" #include <avr/pgmspace.h> #include <inttypes.h> #include "Arduino.h" #include "Wire.h" volatile uint8_t _rs, _addr; void TIC154A::TIC154A(uint8_t rs, uint8_t addr) { _addr = addr; _rs_pin = rs; } void TIC154A::Inicialize(){ if(_rs_pin != 0){ pinMode(_rs_pin, OUTPUT); digitalWrite(_rs_pin,HIGH);// индикатор вывести из сброса delay(10); // 16 000 = 1мС - 10мС } Wire.begin(); Wire.beginTransmission(_addr);// 0x70 адрес индикатора Wire.write(0b11100010); Wire.endTransmission(); delay(10); // 16 000 = 1мС - 10мС Wire.begin(); Wire.beginTransmission(_addr);// 0x70 адрес индикатора Wire.write(LCD_BIAS6); // BIAS 6 Wire.write(LCD_VBIAS); // настройка Vbias Wire.write(120); // 124 Wire.write(LCD_LEFTRIGHT); // настройка типа разветки свеху в низ, и слево на право Wire.write(LCD_ENABLE); // Включить дисплей Wire.endTransmission(); Clear_LCD(); // очистка дисплея } void TIC154A::Clear_LCD(uint8_t tip) { memset(buf,0,255); buf_size = 0; _row=0; _col=0; cursorY=0; cursorX=0; int a; Wire.begin(); Wire.beginTransmission(_addr); Wire.write(LCD_PAGE); // страница 0 Wire.write(0x00); // колонка 0 Wire.write(LCD_COLM); // Wire.endTransmission(); Wire.begin(); Wire.beginTransmission(_addr); if (tip==0) for (a=0;a<1056;a++)Wire.write(0x00); else if(tip==1) for (a=0;a<1056;a++)Wire.write(0xFF); else for (a=0;a<528;a++) {Wire.write(0xAA);Wire.write(0x55);} Wire.endTransmission(); }tic154a.h
#ifndef tic154a #define tic154a #include <inttypes.h> #include "Print.h" #include <Wire.h> // commands #define LCD_PAGE 0b10110000 #define LCD_COLN 0b00001111 #define LCD_COLM 0b00010000 #define LCD_MOVE 0b10001011 #define LCD_MOVEB 0b10001001 #define LCD_BIAS6 0b11101011 #define LCD_VBIAS 0b10000001 #define LCD_LEFTRIGHT 0b11000110 #define LCD_ENABLE 0b10101111 #define CD B00000010 // Command/Data bit #define RW B00000001 // Write/Read bit class TIC154A { TIC154A (uint8_t rs, uint8_t addr); void Inicialize(); void Clear_LCD(uint8_t tip); } #endifmain.ino
#include <tic154a.h> #include <Wire.h> TIC154A Lcd (8,112); void setup() { Lcd.Inicialize(); Lcd.Clear_LCD(0); } void loop() { // put your main code here, to run repeatedly: }Собственно сама ошибка из IDE
Arduino: 1.6.0 (Windows 8), Плата"Arduino Uno" Using library tic154a in folder: E:\arduino-1.6.0\libraries\tic154a (legacy) Using library Wire in folder: E:\arduino-1.6.0\hardware\arduino\avr\libraries\Wire E:\arduino-1.6.0/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IE:\arduino-1.6.0\hardware\arduino\avr\cores\arduino -IE:\arduino-1.6.0\hardware\arduino\avr\variants\standard -IE:\arduino-1.6.0\libraries\tic154a -IE:\arduino-1.6.0\hardware\arduino\avr\libraries\Wire E:\TMP\build4680243901608837322.tmp\main.cpp -o E:\TMP\build4680243901608837322.tmp\main.cpp.o In file included from E:\arduino-1.6.0\hardware\arduino\avr\cores\arduino/Arduino.h:26:0, from main.ino:4: /arduino-1.6.0/hardware/tools/avr/avr/include/math.h:121:8: error: expected unqualified-id before string constant extern "C" { ^ Ошибка компиляции.//*****
PDF на контроллер дисплея