Jump to content

Recommended Posts

Сделал девайс для своей машины, думаю, многим понравится. Прибор устанавливается на любом автомобиле с напряжением бортовой сети 12В.

Основные функции:

1.остаток топлива в баке в литрах.

2.напряжение бортовой сети.

3.рабочую температуру двигателя.

4.температуру воздуха снаружи машины.

5.изменение яркости дисплея в зависимости от включенного габаритного освещения (день/ночь).

Дополнительно, компьютер обладает следующими сервисными возможностями:

1.калибровка штатного датчика уровня топлива.

2.установка уровня подсветки дисплея для режимов день/ночь.

3.изменение поправочного коэффициента инерционности показаний уровня топлива.

Все калибровки прибора производятся программно. Для измерения температуры необходима установка собственных датчиков dallas ds18b20.

В основе устройства лежит микроконтроллер AVR ATMega8 производства фирмы ATMEL.

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

В качестве индикатора был выбран алфавитно-цифровой ЖК индикатор фирмы МЭЛТ МТ-16S2H, который с успехом можно заменить на любой другой, совместимый с HD44780.

Статья на сайте: Бортовой миникомпьютер

В архиве схема, фьюзы для прошивания, файлы lcd.hex и lcd.epp, описание работы с менюшками.

avr_lcd.rar

Share this post


Link to post
Share on other sites

можно ли спросить, в правой нижней части схемы нужно ли общее соединение между землёй 7805 и минусами конденсаторов?

и как МК узнает, какой датчик от двигателя, а какой уличный?

Edited by Блуд

Share this post


Link to post
Share on other sites
можно ли спросить, в правой нижней части схемы нужно ли общее соединение между землёй 7805 и минусами конденсаторов?

да нужно ..

и как МК узнает, какой датчик от двигателя, а какой уличный?

действительно ... :huh:

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

и как МК узнает, какой датчик от двигателя, а какой уличный?
действительно ...

собственно - контроллер не понимает, какой датчик на улице, а какой от двигателя.

я делал так:

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

Share this post


Link to post
Share on other sites

понятно. спасибо. в принципе, я так и думал.

куда можно посоветовать прицепить уличный датчик?

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

и как МК узнает, какой датчик от двигателя, а какой уличный?
действительно ...

собственно - контроллер не понимает, какой датчик на улице, а какой от двигателя.

я делал так:

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

эээ... т.е. теоретически можно подключить неограниченное кол-во датчиков на 1 ногу таким способом? :blink:

Share this post


Link to post
Share on other sites

конечно, было бы красиво поднять точность датчиков до десятых (они ведь позволяют же). было бы точнее. если можно, то почему не поспользоваться?) место ведь на дисплее есть ещё..

эээ... т.е. теоретически можно подключить неограниченное кол-во датчиков на 1 ногу таким способом?

ну, как сейчас помню, делалось 8 штучек. все работали.

смотря для какой цели ведь. в машине 8 штук явно избыточно))

Edited by Блуд

Share this post


Link to post
Share on other sites
конечно, было бы красиво поднять точность датчиков до десятых (они ведь позволяют же).

при увеличении температуры (скажем с 24 до 25 градусов) почему-то конструкция типа:

sprintf(lcd_buffer,"t=%i.%u\C",temp,temp%1); показывает t=24.0C , потом t=25.0C , хотя должны показываться 24.1 .... 24.9.

не знаю, с чем это связанно..... я грешу на сами датчики ....

вот код , описанный на многих сайтах:

devices=w1_search(0xf0,rom_code); //ищем датчики, и записываем их адреса в массив

while(devices>0) //бесконечный цикл, если датчик подключен

{

if(i>=devices){ //Если "i" больше или равно найденным датчикам

i=0; //тогда "i" равно нулю

}

temp=ds18b20_temperature(&rom_code[0]); //читаем температуру с выбранного датчика

if (temp>1000){ //если датчик выдает больше 1000

temp=4096-temp; //отнимаем от данных 4096

temp=-temp; //и ставим знак "минус"

}

sprintf(lcd_buffer,"t=%i.%u\C",temp,temp%1); //записываемем массив для экрана температуру

lcd_clear(); //чистим дисплей перед выводом

lcd_puts(lcd_buffer); //выводим массив на LCD

};

если кто - нибудь знает, в чем грабли - буду рад сотрудничеству (с последующим исправлением в прошивке).

Edited by Юрец

Share this post


Link to post
Share on other sites

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

float temp;

long temp2;

{

temp=ds18b20_temperature(&rom_codes[0]);

temp2=temp*10;

sprintf(lcd_buffer2,"t%u=%d.%i\xdfC",j++,(temp2-(temp2%10))/10,temp2%10);

lcd_clear();

lcd_puts(lcd_buffer2);

delay_ms(500);

датчики тут, конечно, не при чём. автор, если будут проблемки, стукни в асю, сообразим на двоих, а то, думаю, всем здесь читать разбирательства по поводу кода не шибко интересно=)

пояснения к моему коду:

(temp2-(temp2%10))/10 - цифра десятков - из общего числа вычитаем количество единиц и делим на 10

temp2%10 - а это цифра единиц

в вашем же случае

sprintf(lcd_buffer,"t=%i.%u\C",temp,temp%1); //записываемем массив для экрана температуру

temp%1 - это остаток от деления числа на единицу. к дробным числам такая штука не работает. надо переносить точку (умножать на 10) и потом делить с остатком на 10, остаток и будет искомым числом. любое число при делении на единицу даёт в остатке ноль. поэтому и выводится у вас ноль после точки

Edited by Блуд

Share this post


Link to post
Share on other sites

вот прошивка для показа температуры с долями градусов:

lcd_2.rar

но мне кажется, что это излишне (более удобочитаемо смотреть на целые числа).

to admin :

можете прикрепить и эту прошивку для желающих.

Share this post


Link to post
Share on other sites

Автору.Какой программой лучше воспользоваться для прошивки контроллера?

Share this post


Link to post
Share on other sites

с десятыми динамичнее получается. особенно, когда машина почти прогрелась.

Автор. Энергонезависимая память ведь ещё осталась.

почему бы не сделать более точной регулировку бензина в баке?

плюс-минус 1 литр- это слишком грубовато, ведь можно, к примеру, снизить порог. выводить с точностью до десятых, калибровать по пол-литра (не понимаю, почему вы так боитесь десятых?) Особенно, когда бензина не так много и осталось- это будет важно. Например, если осталось 3,8 литра, то в вашем случае покажет 3, ошибка довольно велика выходит, а если покажет 3,5 то это уже куда ни шло)

это так, перспективы. ваш проект ведь можно развивать и развивать.

Edited by Блуд

Share this post


Link to post
Share on other sites
вот прошивка для показа температуры с долями градусов:

но мне кажется, что это излишне (более удобочитаемо смотреть на целые числа).

to admin :

можете прикрепить и эту прошивку для желающих.

Закачал и эту на сайт

Share this post


Link to post
Share on other sites
Автору.Какой программой лучше воспользоваться для прошивки контроллера?

я прошиваю в codevisionAVR , в которой и пишу программу. но, если требуется просто прошить контроллер, то можно использовать ponyprog

в архиве - описание работы с ponyprog "для чайников"

HELP.rar

Автору.почему бы не сделать более точной регулировку бензина в баке?

а вы посмотрите (лучше посчитать) количество витков проволоки на реостате уровня топлива, по которому двигается ползунок. я не думаю, что для бака (скажем 40 литров) количество витков реостата будет 80 и более (40*0,5 , где 0,5- показ через 0,5 литра)...

Edited by Юрец

Share this post


Link to post
Share on other sites

Здравствуйте! Я как новенький возможно задам глупые вопросы но хотелось бы получить ответ. Подскажите пожалуйста что за датчик подключен на МК на 13 вывод? И прошивка для МК она полная? :rolleyes:

Share this post


Link to post
Share on other sites

Автору.Спасибо за помощь!Если можно еще вопрос:Можно ли использовать вместо индикатора указанного на схеме индикатор WINSTAR WH1602C?

Share this post


Link to post
Share on other sites
что за датчик подключен на МК на 13 вывод? И прошивка для МК она полная? :rolleyes:

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

служит для "пикания" при нажатиях на кнопки.

прошивка для МК полная (охватывает полный дамп памяти микроконтроллера).

Можно ли использовать вместо индикатора указанного на схеме индикатор WINSTAR WH1602C?

насколько я знаю, у индикатора WINSTAR WH1602C полная совместимость с HD44780, поэтому подключайте, должно работать.

Share this post


Link to post
Share on other sites

Автору.Спасибо.Начал собирать прибор.Обязательно сообщу о результатах.

Share this post


Link to post
Share on other sites

Автору.Собрал прибор,прошил конроллер,так как Вы указали.После подключения ирдикатор ничего не показывает.Решил проверить контроллер,но Pony Prog его не видит.Подскажите пожалуйста где моя ошибка.

Share this post


Link to post
Share on other sites
Решил проверить контроллер,но Pony Prog его не видит.

а до программирования Pony Prog видел контроллер?

если ДА, то вероятно неправильно выставлены фьюзы (прошивка не причем).

все работает (уже третий девайс). во всех трех использовал ATMEGA8-16PU в DIP корпусе.

пробуйте реанимировать микроконтроллер подключением кварца, подачей внешних импульсов (где-то в соседних ветках форума есть похожее).

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

по фьюзам здесь подробно расписано.

будут вопросы - пишите.

вопрос ко ВСЕМ : кто повторял конструкцию?

Edited by Юрец

Share this post


Link to post
Share on other sites

До програмирования - видел.После загрузки файла прошивки и EEPROM,я нажал на вкладке "биты конфигурации и защиты" клавишу "считать",затем выставил фьюзы согласно рисунку,затем нажал "записать".Самое интересное,что после прошивки я дважды проверял, программатор нормально определял контроллер.Очень хочется повторить замечательный прибор.

Share this post


Link to post
Share on other sites
1.Решил проверить контроллер,но Pony Prog его не видит.

2.после прошивки я дважды проверял, программатор нормально определял контроллер.

нестыковочка... либо я что-то недопонял...

сейчас программатор определяет контроллер?

индикатор WINSTAR WH1602C?

ошибки в монтаже проверяли?

p.s.

мне как-то попадался один из WINSTARовских 4х20 WH2004A, так я его и не запустил... (работал только тестовый режим - на экране черные прямоугольники знакомест).может заводской брак, или еще что-то. стоит прилично. в итоге - деньги на ветер...

совместимость разных фирм

Share this post


Link to post
Share on other sites

Автору.Сейчас программатор не видит МК.Индикатор WH1602C-YGH-CTK.С удовольствием применил бы индикатор указанный на схеме,но к сожалению в Киеве их просто не возможно купить.С трудом нашел Винстаровский,по даташит вроде идентичен с МЭЛТ,кирилицу поддерживает.Интересен тот факт,что через несколько минут после включения,на индикаторе действительно появляются квадратики,потом исчезают.Монтаж проверял.У нас в Киеве этот индикатор стоит менее 7 у.е.попробую еще раз прошить очередной МК,и заменить индикатор.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Сашура
      Всех приветствую.
      Собственно наболевшая тема:
       
      Приветствую,
      Задача восстановить смарт ключ после серии не удачных экспериментов по замене севших батарей. На данный момент открываю и завожу обходным методом.
      Авто Toyota Auris Hybreed 2015.
      ------------------
      1. Для начала хорошо бы разобраться в алгоритме взаимодействия схемы ключа с бортовым компьютером. К сожалению я нигде не нашел вменяемое описание.
      Размышляю вслух:
      1.1. опознавание ключа в зоне его чувствительности происходит периодическим передачей n-bit в эфир 433.92MHz (Европа, Азия?)
      1.2. в случае отклика приемника ключа на n-bit код последний активизирует ответ в виде обратного ответа тем же кодовым значением, происходит активизация логики на открытие дверей и на пуск кнопки запуска двигателя.
      1.3. т.к. в режиме аварийного запуска (смарт модуль на кнопку) активизация запуска (через иммобилаизер) происходит, следовательно, код запуска на смарт блоке не затерт, чувствительность приемника предельно малая, от того брелок нужно прикладывать к кнопке, далее на нем активизируется передатчик и транслирует код доступа. Как-то так.
      Есть открытый вопрос — по процедуре замены батареи. В мануалах я где-то встречал лимит по времени не более 10 с. Но я не думаю что Eeprom слетает по причине его длительного обесточивания. Сегодня они все энергонезависимые.
      1.4. соответственно дверь не можно открывать по той же причине.
      Вывод — приемник смарт ключа не реагирует на запрос, передатчик не заводится.
      Батарея 3,3V.
      Led  на ключе в зоне действия мертвый.
      А может подобрать китайский Can bus c соответствующим софтом под модель авто?
      Любой опыт и ссылки приветствуются. 
      То немногое, что народ выкладывает на yOuTobe особой ясности не дает.


    • By Вячеслав_НС
      помогите разобраться с кодом .(послать значение по шине TWI на ЦАП PCF8591) не работает в протеусе ...
      #define F_CPU 8000000UL 
      #include <stdlib.h>
      #include <avr/io.h>
      #include <util/delay.h>
      //*** ИНИЦИАЛИЗАЦИЯ ШИНЫ TWI ***/
      void TWI_Init(void)
      {
          // Установка тактовой частоты F_scl  = 100 кГц
          TWBR =32;
          TWSR &= (~((1<<TWPS1)|(1<<TWPS0)));
          TWCR |= (1 << TWEN);            // Разрешение работы TWI-модуля
      }

      /*** ЗАПУСК TWI ***/
      void TWI_Start(void)
      {
          TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
          while(!(TWCR & (1<<TWINT)));
          TWDR = 1001000; // передача адреса модуля PCF8591 в шину TWI
          TWCR=(1<<TWINT)|(1<<TWEN);
          while(!(TWCR & (1<<TWINT)));
      }
      /*** ОСТАНОВКА TWI ***/
      void TWI_Stop(void)
      {
          TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
          while(TWCR & (1<<TWSTO));        // Ожидание завершения передачи условия СТОП
      }
      /***ПЕРЕДАЧА ДАННЫХ В TWI***/
      void TWI_WriteByte(uint8_t data)
      {
          TWDR = data;                    // Загрузка данных в TWDR
          TWCR=(1<<TWINT)|(1<<TWEN);
          while(!(TWCR & (1 << TWINT)));    // Ожидание завершения передачи данных
      }
      /*** ПЕРЕДАТЬ ЗНАЧЕНИЕ В PCF8591 ***/
      void PCF8591_get(void)
      {
          TWI_Start();                // Запуск TWI
          TWI_WriteByte(0x40);        //включаем цап
          TWI_WriteByte(100);            // запись в ЦАП значения 100
          TWI_Stop();                    // Остановить TWI
      }            
          int main(void)
      {
          TWI_Init();    
          while (1)
      {
              PCF8591_get;
             _delay_ms(50);
        }
      }
    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By Adinetsrock
      Помогите опознать транзистор. Выпаял из бортового компьютера Surf.  Маркировка E144A    K38X

×
×
  • Create New...