Перейти к содержанию
    

fate

Свой
  • Постов

    105
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные fate


  1. Добрый день (ночь)!

     

    Никак не могу найти даташит на матрицу LB060X02 или LB060X01 от LG Display, нашел только здесь

    http://www.panelook.com/LB060X02-RD01_LG%2...view_16981.html

    но за описание 800$ - как-то дороговато.

     

    В процессе случайно набрел на datasheet S1D13521, так как это в туже тему, вот файл, может кому надо.

     

    Спасибо!

    S1D13521B01_V1.6.pdf

  2. только вот элемент пельтье это токовый прибор и использовние ипульсного регулирования (вкл. выкл. по достижению заданной температуры) крайне не желательно так как скажеться на сроке службы, причем весьма значительно

  3. по прерываниям :)

     

    #include <stdlib.h>
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    #define byte 			uint8_t
    #define word 			uint16_t
    
    #define KEY_SHORT		10
    #define KEY_LONG		6000
    
    volatile byte			scan = 0;
    volatile byte			scan_stop = 0;
    volatile byte			scan_code = 0;
    volatile word			key_age = 0;
    volatile byte			key_pressed = 0;
    volatile byte			key_long = 0;
    
    ISR(TIMER1_COMPA_vect)
    {
    if (!scan_stop) PORTL = ~_BV(++scan & 7);
    else {
    	key_age += (key_age == 0xFFFF) ? 0 : 1;
    	if (key_age == KEY_SHORT) key_pressed = 1;
    	else if (key_age == KEY_LONG) key_long = 1;
    }
    PCICR |= _BV(PCIE2);
    }
    
    ISR(PCINT2_vect)
    {
    register byte i, p;
    
    if ((p = PINK) != 0xFF) {					// key pressed
    	for (i = 0; i != 8; i++) if(!(p & _BV(i))) break;
    	scan_code = (scan << 3) + i;
    	PCMSK2 = _BV(i);
    	scan_stop = 1;
    	key_age = 0;
    } else {									// key released
    	PCMSK2 = 0xFF;
    	scan_stop = 0;
    }
    PCICR &= ~_BV(PCIE2);
    }
    
    word
    getkey()
    {
    word key;
    
    for (;;) {
    	if (key_pressed) {
    		key_pressed = 0;
    //
    // do something
    //
    		break;
    	}
    	else if (key_long) {
    		key_long = 0;
    //
    // do something
    //
    		break;
    	}
    }
    return (key);
    }
    
    void
    init(void)
    {
    // timer initialization
    PRR0 &= ~_BV(PRTIM1);			// enable timer 1
    
    TCCR1A = 0;
    TCCR1B = _BV(WGM12) | _BV(CS11);
    TIMSK1 = _BV(OCIE1A);
    TCNT1 = 0;
    OCR1A = 2000;
    
    // setup button interrupts
    PCMSK2 = 0xFF;
    
    sei();
    }
    
    int
    main(void)
    {
    word i;
    
    init();
    
    for (;;) {
    	i = getkey();
    //
    // do something
    //
    }
    exit(0);
    }
    

  4. ...

    Затем, что советов не шесть и данная статься содержит слишком много крайне чайниковских ремарок.

    Книга написана совсем в другом стиле и другими Авторами :) и в отличие от приведенной статьи не является "комиксом".

     

    ну потому что это всего лишь статья размещенная в соответсвующем разделе на этом форуме и к тому же фактически для начинающих, понятно и так что люди с более профессиональным подходом уже ознакомлены с трудами Кнута (и с их непререкаемой ценностью)

     

    ps: Уважаемый zltigo, без доли сарказма и иронии, могу сказать что Вам эта статья уже дать ничего не может

  5. Шесть мало :)

    Советов достаточно много и зачастую они противоречивы или надуманы.

    Попробуйте найти Kernigan, Pike "The Practice of Programming". Есть и русское издание где-то 2000 года.

    Изложенное в ней маскмимально легло на мой опыт.

     

    тут ведь не написано "все советы … которых шесть" :)

    и зачем сравнивать статью с книгой ?

×
×
  • Создать...