Заголовок сообщения: Как инвертировать семисегментик с ОК на ОА?
Добавлено: Вс июл 01, 2012 10:52:37
Родился
Зарегистрирован: Вс июл 01, 2012 10:41:51 Сообщений: 2 Откуда: С планеты Земля
Рейтинг сообщения:0
Всем доброго времени суток, и к делу, я собираю вольтметр на attiny26, от него есть исходник на Си (написан через кодвижен), но проблема в том что прошивка рассчитана на ОК индикатор, а не на ОА, подскажите как инвертировать в ИСХОДНИКЕ логические уровни у портов МК.
p.s. у меня вышло лишь инвертировать PORTB который переключает цифры для динамической индикации (где оператор case), а PORTA выдаётся крякозябры, при смене таблицы констант для индикатора с ОА, однако я правильно инвертировал константы цифр, не пойму почему так, кому не лень, помогите плиз
flash char digits[] = {0xE7, 0x24, 0xAB, 0xAE, 0x6C, 0xCE, 0xCF, 0xA4, 0xEF, 0xEE, 0x00}; //для индикатора с ОК //flash char digits[] = {0x18, 0xDB, 0x54, 0x51, 0x93, 0x31, 0x30, 0x5B, 0x10, 0x11, 0x00}; //для индикатора с ОА void recoding(void) { //тут разделение на сотые, десятые и единичные доли, это понятно digit_out[0]=indication/100%10; digit_out[1]=indication/10%10; digit_out[2]=indication%10; }
#define ADC_VREF_TYPE 0x80 // Read the AD conversion result //собственно дальше не особо понимаю что происходит и как влияет всё это на индикацию //тут видать кроется проблема несовместимости с таблицей знаков unsigned int read_adc(unsigned char adc_input) { unsigned char i; unsigned int result = 0; ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); for(i=0; i<ADC_AVERAGE;i++){ // Start the AD conversion ADCSR|=0x40; // Wait for the AD conversion to complete while ((ADCSR & 0x10)==0); ADCSR|=0x10; result += ADCW; } return result/ADC_AVERAGE;; }
PORTA=0x00; //тут видно попеременное переключение цифр и вывода в порт А switch (cur_dig){ case 0:{digit3=1;digit1=0;break;}; case 1:{digit1=1;digit2=0;break;}; case 2:{digit2=1;digit3=0;break;}; //сделал для ОА - работает //case 0:{digit3=0;digit1=1;break;}; //case 1:{digit1=0;digit2=1;break;}; //case 2:{digit2=0;digit3=1;break;};
} PORTA=digits[digit_out[cur_dig]]; cur_dig++; if (cur_dig==3) cur_dig=0; }
void main(void) {
// Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
PORTA=0x00; DDRA=0xEF;
// Port B initialization // Func7=In Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
Рассмотрим реализацию узла управления реле на примере компонентов SUNCO и реле Hongfa. Разберем оптимальные схемы и долговечные полупроводниковые компоненты для их реализации среди широкого ассортимента SUNCO. В номенклатуру компании SUNCO входят диодные мосты, выпрямительные, сигнальные и TVS-диоды, стабилитроны, биполярные, цифровые PNP- и NPN-транзисторы, маломощные тиристоры, симисторы и MOSFET.
КОМПЭЛ продолжает поддерживать и расширять список складских позиций Hongfa, представленных электромеханическими реле. Продукция компании активно применяется в таких областях, как промышленность, энергетика, бытовые приборы, автомобильная отрасль и специальная техника, требующая высокой надежности и на сегодняшний момент может легко заменить электромеханические реле ушедших из РФ брендов.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения