Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.06.2015, 21:59  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: дисплей на ht1621 и Mega8

Сообщение от WindoЗavr Посмотреть сообщение
у меня есть
но нет головы и даташита, чтоб аппаратный SPI запустить, в алгоритм билдер есть его настройка. да и сдвигатель организовать несложно, у атмела есть аппноты на подобные темы
Реклама:
jump вне форума  
Непрочитано 10.09.2015, 12:13  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: дисплей на ht1621 и Mega8

разобрался с инициализацией ht1621 на ардуино
а где взять на него таблицу символов?

даташит
PHP код:
#include "HT1621.h"
HT1621 ht(2,3,4);
void setup() {
  
register uint8_t i;

  
ht.begin();
  
ht.sendCommand(HT1621::RC256K);
  
ht.sendCommand(HT1621::BIAS_THIRD_4_COM);
  
ht.sendCommand(HT1621::SYS_EN);
  
ht.sendCommand(HT1621::LCD_ON);

  for(
i=0i16i++)
    
ht.write(i,0);

  for(
i=0i16i++)  
    
ht.write(i0xfa);
}
void loop() {} 
дисплей 8*1 а над сегментами есть линии
WindoЗavr вне форума  
Непрочитано 10.09.2015, 16:42  
Paul74s
Частый гость
 
Регистрация: 19.05.2014
Сообщений: 48
Сказал спасибо: 5
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Paul74s на пути к лучшему
По умолчанию Re: дисплей на ht1621 и Mega8

Вот тут есть http://arduino.ru/forum/apparatnye-v...ogo-indikatora
Paul74s вне форума  
Непрочитано 10.09.2015, 18:43  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: дисплей на ht1621 и Mega8

перепробовал все коды, ардуино плюётся ошибками
вводил двоичные числа - результат тот же что и у меня, что угодно только не цифры

система довольно бредовая, биты 8битного числа не привязаны к сегментам
изменение одного из битов меняет сразу 2 сегмента

при
ht.write(1, 0xff);
delay(1000);
ht.write(2, 0xff,0000);
delay(1000);
ht.write(3, 0xff);
delay(1000);
ht.write(4, 0xff);
delay(1000);
ht.write(5, 0xff);


пишется Е, через секунду она дописывается до 8 и пишется следйщее Е,через секунду она дописывается до 8 и пишется следйщее Е
итд
WindoЗavr вне форума  
Непрочитано 10.09.2015, 18:45  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: дисплей на ht1621 и Mega8

PHP код:
/**
 * \file HT1621.cpp
 * \brief Implementation of a class for dealing with the Holtek HT1621 chip.
 * \author Enrico Formenti
 * \date 31 january 2015
 * \version 1.0
 * \copyright BSD license, check the License page on the blog for more information. All this text must be
 *  included in any redistribution.
 *  ‹br›‹br›
 *  See macduino.blogspot.com for more details.
 *
 */

#include "HT1621.h"

void HT1621::begin()
{
    
pinMode(_DATA_pinOUTPUT);
    
pinMode(_RW_pinOUTPUT);
    
pinMode(_CS_pinOUTPUT);
 
    
digitalWrite(_CS_pinHIGH);
    
digitalWrite(_RW_pinHIGH);
    
digitalWrite(_DATA_pinHIGH);

#ifndef __HT1621_READ
    
register uint8_t i;
    
    for(
i=0i16i++)
        
ram[i] = 0;
#endif
    
}

// OCIO !!!
// nell'esempio dopo ogni write viene dato un delay
// di 20 microsecondi...
void HT1621::writeBits(uint8_t datauint8_t cnt)
{
    
register uint8_t i;

    for(
i=0;icnt;i++,data ‹‹=1)
    {
        
digitalWrite(_RW_pinLOW);
        
delayMicroseconds(20);
        
digitalWrite(_DATA_pindata&0x80 HIGH LOW);
        
delayMicroseconds(20);
        
digitalWrite(_RW_pinHIGH);
        
delayMicroseconds(20);
    }
}

#ifdef __HT1621_READ

uint8_t HT1621::readBits(uint8_t cnt)
{
    
uint8_t dataistate;
    
    
    
pinMode(_DATA_pinINPUT);
    
    for(
i=0data=0icntdata ‹‹= 1i++) {
        
digitalWrite(_RW_pinLOW);
        
delayMicroseconds(20);
        
data |= (digitalRead(_DATA_pin) == HIGH);
        
digitalWrite(_RW_pinHIGH);
        
delayMicroseconds(20);
    }
    
    
pinMode(_DATA_pinOUTPUT);
    
    return 
data;
}

#endif

void HT1621::sendCommand(uint8_t cmdbool firstbool last)
{
    if (
first) {
        
TAKE_CS();
        
writeBits(COMMAND_MODE4);
    }
    
    
writeBits(cmd8);
    
    if (
last)
        
RELEASE_CS();
}

void HT1621::write(uint8_t addressuint8_t data)
{
    
TAKE_CS();
    
    
writeBits(WRITE_MODE3);
    
writeBits(address‹‹36); // 6 is because max address is 128
    
writeBits(data8);
#ifndef __HT1621_READ
    
ram[address] = data;
#endif
    
    
RELEASE_CS();
}

void HT1621::write(uint8_t addressuint8_t datauint8_t cnt)
{
    
register uint8_t i;
    
    
TAKE_CS();
    
    
writeBits(WRITE_MODE3);
    
writeBits(address‹‹36);
    for (
0‹ cnti++) {
        
writeBits(data8);
#ifndef __HT1621_READ
        
ram[i] = data;
#endif
    
}
    
    
RELEASE_CS();
}

void HT1621::write(uint8_t addressuint8_t *datauint8_t cnt)
{
    
register uint8_t i;
    
    
TAKE_CS();
    
    
writeBits(WRITE_MODE3);
    
writeBits(address‹‹36);
    for (
0‹ cnti++) {
        
writeBits(data[i], 8);
#ifndef __HT1621_READ
        
ram[i] = data[i];
#endif
    
}
    
    
RELEASE_CS();
}

#ifdef __HT1621_READ

uint8_t HT1621::read(uint8_t address)
{
    
uint8_t data;
    
    
TAKE_CS();
    
    
writeBits(READ_MODE3);
    
writeBits(address‹‹36);
    
data readBits(8);
    
    
RELEASE_CS();
    
    return 
data;
}

void HT1621::read(uint8_t addressuint8_t *datauint8_t cnt)
{
    
register uint8_t i;
    
    
TAKE_CS();
    
    
writeBits(READ_MODE3);
    
writeBits(address‹‹36);
    for (
0‹ cnti++)
        
data[i] = readBits(8);
    
    
RELEASE_CS();
}

#else

uint8_t HT1621::read(uint8_t address)
{
    return 
ram[address];
}

void HT1621::read(uint8_t addressuint8_t *datauint8_t cnt)
{
    
register uint8_t i;
    
    for (
0‹ cnti++)
        
data[i] = ram[address+i];
}

#endif 
WindoЗavr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дисплей BL12864CYPNH потух Касьян Песочница (вопросы новичков) 0 28.06.2014 00:47
Текстовый дисплей PILZ PX 150-40-RFL ratfor1 Производственное оборудование 2 21.12.2013 00:16
i2c_tiny_usb + Mega8 (slave) atsys AVR 3 06.11.2013 19:01
Mega8 и MDLS20468 ser009 AVR 47 26.09.2012 13:23
Разбили дисплей анемометра Sopromat2 Измерительное оборудование 11 01.02.2012 21:47


Часовой пояс GMT +4, время: 04:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot