Светодиодные фонари и световые приборы. Всё о светотехнике.
Вернуться   Форум FONAREVKA.RU Лаборатория Разработка и модификация фонарей Разработка и модификация электроники фонарей
Расширенный поиск
Забыли пароль? Регистрация

  • О нашем проекте
  • Светотехника и световые приборы
  • Правила форума
Проект FONAREVKA.RU специализируется на предоставлении всей необходимой информации по светотехнике:

— светодиодные фонари;
— различные источники питания;
— разнообразные зарядные устройства;
— освещение помещений и наружное освещение;
— световые приборы для личного, пассажирского и грузового транспорта;
— специальные световые приборы для медицины, для растений, для аквариумов, для террариумов, а также аварийно-сигнальные световые приборы;
— альтернативные источники света;
— лазеры и лазерная техника.

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

F.A.Q. по выбору фонарей различных типов;
F.A.Q. по выбору аккумуляторов;
F.A.Q. по выбору зарядных устройств.
Ответ  Создать новую тему
Просмотров в теме 122820   Ответов в теме 121   Подписчиков на тему 30   Добавили в закладки 15
Опции темы Поиск в этой теме
Старый 29.07.2016, 11:36   41
galex
сволочь фонарёвки
 
Регистрация: 27.05.2011
Последняя активность: Сегодня 05:55
Адрес: Россия, Пермский край
Сообщений: 38195
Сказал(а) спасибо: 5886
Поблагодарили: 32495 раз(а) в 15080 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от Corvax :
там же защитный диод стоит перед МК
хз. моргал, помнится.
galex вне форума   Ответить с цитированием Вверх
Старый 29.07.2016, 14:22   42
Tamagotchi

 
Аватар для Tamagotchi
 
Регистрация: 07.09.2011
Последняя активность: 04.08.2023 18:59
Адрес: Волгоградская обл.
Сообщений: 13705
Сказал(а) спасибо: 3333
Поблагодарили: 7886 раз(а) в 3523 сообщениях

Отправить сообщение для Tamagotchi с помощью Skype™
По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от Corvax :
Я про линейники на 7135, если что.
Блин, я же забыл, что бывают линейники а на импульснике я так несколько МК "запорол" - USBASP их больше не видел и доктор не лечил. Потом настоящим программатором они прошились.
Tamagotchi вне форума   Ответить с цитированием Вверх
Старый 02.09.2016, 14:35   43
XVID
Новичок
 
Регистрация: 27.05.2015
Последняя активность: 13.04.2021 09:22
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили: 0 раз(а) в 0 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Подскажите пожалуйста, правильно ли я понимаю, что такой зажим позволяется подключиться к микросхеме народного драйвера прямо на плате без пайки?
XVID вне форума   Ответить с цитированием Вверх
Старый 02.09.2016, 14:47   44
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

XVID, Да.
vdavid вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
XVID (02.09.2016)
Старый 12.10.2016, 22:11   45
igorochek
Увлеченный
 
Аватар для igorochek
 
Регистрация: 17.12.2015
Последняя активность: 25.12.2022 18:52
Адрес: Украина,Киев
Сообщений: 268
Сказал(а) спасибо: 41
Поблагодарили: 9 раз(а) в 9 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

ткните носом на китаймаги какие шнурки купить чтоб ничего не паять.есть компорт, уарт програматор,драйвер https://www.fasttech.com/p/... и желание прошить
igorochek вне форума   Ответить с цитированием Вверх
Старый 03.01.2017, 15:18   46
Reyden
Ветеран Фонарёвки
 
Аватар для Reyden
 
Регистрация: 29.09.2013
Последняя активность: 25.11.2023 19:08
Адрес: Dnipro
Сообщений: 2922
Сказал(а) спасибо: 579
Поблагодарили: 572 раз(а) в 417 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Возникла необходимость сбросить пароль Bios'a на ноуте hp 8470p. Испробованные средства были малоэффективны, остается лишь прошивать микросхему Winbond 25Q128BVFG дампом, который создается из официальной прошивки, либо берется уже готовый в интернете.
http://notebook1.ru/forma1/...

Первым делом, нужен подходящий программатор для flash памяти через SPI и USbasp может с этим справиться. Читал, что подходит модифицированная прошивка от Tifa, которая добавляет эту функцию и сохраняет возможность работы с AVR микроконтроллерами. Остается совместимость с оригинальными драйверами.
http://plc-blog.com.ua/usba...

Кто ни будь с таким сталкивался? Интересуют подводные камни. План следующий: настроить программатор, выпаять микросхему из ноута, стереть и прошить дампом.

[Исправлено: Reyden, 03.01.2017 в 15:21]
Reyden вне форума   Ответить с цитированием Вверх
Старый 03.01.2017, 16:17   47
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Reyden, Конкретно 25Q128BVFG не пробовал, но вообще-то работает. Можете посмотреть на еще более простой вариант SPIPGM. Нужен LPT и несколько проводов. Тоже работает, но прошьет ли именно Вашу флешку - неизвестно.
vdavid вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
Reyden (03.01.2017)
Старый 03.01.2017, 18:09   48
ceramic
Ветеран Фонарёвки
 
Аватар для ceramic
 
Регистрация: 08.10.2011
Последняя активность: 26.03.2024 21:08
Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5192 раз(а) в 2784 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от Reyden :
Испробованные средства были малоэффективны
А пробовали через поддержку HP? Мне дважды помогли (несколько лет назад).
Инструкция гуглится, вот одна из первых попавшихся http://h30434.www3.hp.com/t...

Зы
Я немного по другой, вроде, делал, но очень похоже. Для загрузки с USB, на одном из ноутов, пришлось отключить винт и DVD.

[Исправлено: ceramic, 03.01.2017 в 18:13]
ceramic вне форума   Ответить с цитированием Вверх
Старый 03.01.2017, 18:23   49
Reyden
Ветеран Фонарёвки
 
Аватар для Reyden
 
Регистрация: 29.09.2013
Последняя активность: 25.11.2023 19:08
Адрес: Dnipro
Сообщений: 2922
Сказал(а) спасибо: 579
Поблагодарили: 572 раз(а) в 417 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от vdavid :
Можете посмотреть на еще более простой вариант SPIPGM. Нужен LPT и несколько проводов. Тоже работает, но прошьет ли именно Вашу флешку - неизвестно.
LTP порт для меня зло, тем более под рукой его нету и опыта больше с USbasp. Проблема в том, что не понятно какими фьюзами шить новую прошивку. А микросхема биоса как раз поддерживается программой. Еще в поисках распиновки подключения.
Цитата:
Посмотреть сообщение Сообщение от ceramic :
А пробовали через поддержку HP?
Читал про такой способ. Суть в том, чтобы собрать инфу в текстовый файл из под DOS и отправить в техподдержку. В какой регион обращаться и примерные сроки отклика? Я даже не могу зайти в систему, там тоже пароль стоит, вместе с Bitlocker и активирован Secure Boot из Bios'a. Главное запуск с флешки работает. Непонятно еще как быть с сохранностью зашифрованных данных, если снесу Bios.

[Исправлено: Reyden, 03.01.2017 в 18:29]
Reyden вне форума   Ответить с цитированием Вверх
Старый 03.01.2017, 18:32   50
ceramic
Ветеран Фонарёвки
 
Аватар для ceramic
 
Регистрация: 08.10.2011
Последняя активность: 26.03.2024 21:08
Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5192 раз(а) в 2784 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от Reyden :
Главное запуск с флешки работает.
Тогда можно пробовать.

Цитата:
Посмотреть сообщение Сообщение от Reyden :
В какой регион обращаться и примерные сроки отклика?
По телефону поддержки (сейчас на украинском сайте указан 0 800 503 13 продиктовали емейл.
Ответили быстро, или на следующий или через день.
ceramic вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
Reyden (03.01.2017)
Старый 04.01.2017, 00:11   51
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от Reyden :
LTP порт для меня зло, тем более под рукой его нету и опыта больше с USbasp.
Ну, если под рукой нет, тогда ой. Я когда то перешивал биос у MSI mini ITX. У MSI старый глюк, когда БИОС слетает при прошивке из него же. Правда там есть разъем, выведенный прямо на ноги 25-й. За пять минут припаял четыре провода к ЛПТ - и вуаля.
vdavid вне форума   Ответить с цитированием Вверх
Старый 04.01.2017, 00:53   52
Reyden
Ветеран Фонарёвки
 
Аватар для Reyden
 
Регистрация: 29.09.2013
Последняя активность: 25.11.2023 19:08
Адрес: Dnipro
Сообщений: 2922
Сказал(а) спасибо: 579
Поблагодарили: 572 раз(а) в 417 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

В общем бросил я это дело, снес все зашифрованные Bitlocker'om данные и поставил 10-ку, пароля все равно не было, а биос в принципе не нужен, если понадобится, есть техподдержка. Главное работает и сам обновился с флешки. Прошивать его еще та затея.., потом могут артефакты при загрузке выскакивать, придется ковыряться в самом биосе и вшивать данные ноута.

Что за модель попалась.. и батарейку вытаскивал, пробовал утилиты взлома от Mazzif'a, ничего не помогло. Радует, что внутри все на уровне, давно я таких ноутов не видел, Hp Elitebook серия.

[Исправлено: Reyden, 04.01.2017 в 00:56]
Reyden вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 11:47   53
sturr
frugal flashaholic
 
Аватар для sturr
 
Регистрация: 11.01.2011
Последняя активность: 25.09.2022 19:57
Адрес: Ufa, Russia
Сообщений: 1008
Сказал(а) спасибо: 33
Поблагодарили: 175 раз(а) в 125 сообщениях

:sun_smile: Re: Прошивка микроконтроллеров AVR. Часть 2.

По моей просьбе уважаемый VladislavS модифицировал свою программу для старта всегда с младшего режима и переключения яркости по нарастанию (управление стабилизаторами по PB1). Код написан под компилятор IAR.
#include <ioavr.h>
#include <intrinsics.h>
volatile __regvar __no_init unsigned char mode @ 15;
volatile __regvar __no_init unsigned char power_low_counter @ 14;
volatile __regvar __no_init unsigned int adc_c @ 12;
__no_init __eeprom unsigned char ee_mode;
#ifdef __cplusplus
extern "C" {
#endif
char __low_level_init()
{
CLKPR|=(1<<CLKPCE);
CLKPR=1;

DDRB=(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(0<<DDB2)|(1<<DDB1)|(1<<DDB0);
PORTB=(0<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(0<<PORTB1)|(0<<PORTB0);

ACSR=(1<<ACD); //Analog Comparator Disable
DIDR0=(1<<ADC0D)|(0<<ADC1D)|(1<<ADC2D)|(1<<ADC3D)|(1<<AIN1D)|(1<<AIN0D);
PRR=(1<<PRTIM0)|(0<<PRADC);

ADMUX=(1<<REFS0)| 1; // Vref=1.1V , ADC1
ADCSRA=(1<<ADEN)|(0<<ADSC)|(1<<ADATE)|(0<<ADIF)|(1<<ADIE)|(1<<ADPS2)|(0<<ADPS1)|(1<<ADPS0);
ADCSRB=0;
return 1;
}
#ifdef __cplusplus
}
#endif
#pragma vector=ADC_vect
__interrupt void ADC_Interrupt(void)
{
switch(mode)
{
case 0: // High
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB1);
break;
case 1: // Medium
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB1);
__delay_cycles(12;
PORTB&=~(1<<PORTB1);
break;
case 2: // Low
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB1);
__delay_cycles(32);
PORTB&=~(1<<PORTB1);
break;
case 3: // Moon
if(ADC<530) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; }
PORTB|=(1<<PORTB1);
__delay_cycles(4);
PORTB&=~(1<<PORTB1);
break;
default: // Power Down
PORTB&=~(1<<PORTB1);
MCUCR=(1<<SE)|(2<<SM0);
__sleep();
break;
}
adc_c++;
};

int main( void )
{
__delay_cycles(100000);
adc_c=0;
power_low_counter=0;
mode=ee_mode;
switch(mode)
{
case 0:
ee_mode=3;
break;
case 1:
case 2:
case 3:
ee_mode--;
break;
default:
mode=3;
ee_mode=2;
break;
}
ADCSRA|=(1<<ADSC);
__enable_interrupt();
while(adc_c<16000);
__disable_interrupt();
PORTB&=~(1<<PORTB1);
ee_mode=3;
__delay_cycles(300000);
__enable_interrupt();

for(;
{
MCUCR=(1<<SE)|(1<<SM0); //Sleep
__sleep();
}
}

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

#include <ioavr.h>
#include <intrinsics.h>
volatile __regvar __no_init unsigned char mode @ 15;
volatile __regvar __no_init unsigned char power_low_counter @ 14;
volatile __regvar __no_init unsigned int adc_c @ 12;
volatile __no_init unsigned int ee_mode;
#ifdef __cplusplus
extern "C" {
#endif
char __low_level_init()
{ CLKPR|=(1<<CLKPCE);
CLKPR=1;
DDRB=(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(0<<DDB2)|(1<<DDB1)|(1<<DDB0);
PORTB=(0<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(0<<PORTB1)|(0<<PORTB0);
ACSR=(1<<ACD); //Analog Comparator Disable
DIDR0=(1<<ADC0D)|(0<<ADC1D)|(1<<ADC2D)|(1<<ADC3D)|(1<<AIN1D)|(1<<AIN0D);
PRR=(1<<PRTIM0)|(0<<PRADC);
ADMUX=(1<<REFS0)| 1; // Vref=1.1V , ADC1
ADCSRA=(1<<ADEN)|(0<<ADSC)|(1<<ADATE)|(0<<ADIF)|(1<<ADIE)|(1<<ADPS2)|(0<<ADPS1)|(1<<ADPS0);
ADCSRB=0;
return 1; }
#ifdef __cplusplus
}
#endif
#pragma vector=ADC_vect
__interrupt void ADC_Interrupt(void)
{ switch(mode)
{ case 0: // High
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB1);
break;
case 1: // Medium
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB1);
__delay_cycles(12;
PORTB&=~(1<<PORTB1);
break;
case 2: // Low
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB1);
__delay_cycles(32);
PORTB&=~(1<<PORTB1);
break;
case 3: // Moon
if(ADC<530) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; }
PORTB|=(1<<PORTB1);
__delay_cycles(;
PORTB&=~(1<<PORTB1);
break;
default: // Power Down
PORTB&=~(1<<PORTB1);
MCUCR=(1<<SE)|(2<<SM0);
__sleep();
break;
}
adc_c++;
};

int main( void )
{ ADCSRA|=(1<<ADSC);
__enable_interrupt();
adc_c=0;
power_low_counter=0;
mode=ee_mode;
switch(mode)
{ case 0:
ee_mode=3;
break;
case 1:
case 2:
case 3:
ee_mode--;
break;
default:
mode=3;
ee_mode=2;
break; }
for(; { MCUCR=(1<<SE)|(1<<SM0); __sleep(); } }

Яркости подбирайте под свои нужды подбором задержек delay_cycles(X), нужные порты соответственно выбором PORTBx.
Программа несмотря на свою простоту, имеет четыре режима яркости (мерцание гораздо менее заметно чем со сток программой и электроника не пищит), стартует всегда с минимума (Moon), переключается вверх одним коротким полунажатием, при разряде аккумулятора автоматически переключается вниз по режимам, после падения напряжения ниже 3В при младшем режиме гасит светик и уводит МК в sleep.
Замечания о недоработках и предложения улучшений приветствуются.
__________________
Свет-как воздух: пока он есть, его не замечаешь...
sturr вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 18:13   54
Wildcat
Ветеран Фонарёвки
 
Регистрация: 09.05.2016
Последняя активность: 31.10.2020 16:52
Адрес: Новосибирск
Сообщений: 2339
Сказал(а) спасибо: 78
Поблагодарили: 919 раз(а) в 607 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Эмммм... Это вы софтовый ШИМ запилили?
Wildcat вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 19:10   55
sturr
frugal flashaholic
 
Аватар для sturr
 
Регистрация: 11.01.2011
Последняя активность: 25.09.2022 19:57
Адрес: Ufa, Russia
Сообщений: 1008
Сказал(а) спасибо: 33
Поблагодарили: 175 раз(а) в 125 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Wildcat, да.
sturr вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 19:41   56
Wildcat
Ветеран Фонарёвки
 
Регистрация: 09.05.2016
Последняя активность: 31.10.2020 16:52
Адрес: Новосибирск
Сообщений: 2339
Сказал(а) спасибо: 78
Поблагодарили: 919 раз(а) в 607 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Теперь пора браться за аппаратный
Wildcat вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 20:52   57
sturr
frugal flashaholic
 
Аватар для sturr
 
Регистрация: 11.01.2011
Последняя активность: 25.09.2022 19:57
Адрес: Ufa, Russia
Сообщений: 1008
Сказал(а) спасибо: 33
Поблагодарили: 175 раз(а) в 125 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Wildcat, а зачем?
sturr вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 21:42   58
Reyden
Ветеран Фонарёвки
 
Аватар для Reyden
 
Регистрация: 29.09.2013
Последняя активность: 25.11.2023 19:08
Адрес: Dnipro
Сообщений: 2922
Сказал(а) спасибо: 579
Поблагодарили: 572 раз(а) в 417 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Недавно встретил такой адаптер для прошивки, когда искал мк в местном магазине. До конца не изучал его возможности, но выглядит интересно.
http://radiostore.com.ua/p4...
Reyden вне форума   Ответить с цитированием Вверх
Старый 08.03.2017, 22:16   59
Wildcat
Ветеран Фонарёвки
 
Регистрация: 09.05.2016
Последняя активность: 31.10.2020 16:52
Адрес: Новосибирск
Сообщений: 2339
Сказал(а) спасибо: 78
Поблагодарили: 919 раз(а) в 607 сообщениях

По умолчанию

Цитата:
Посмотреть сообщение Сообщение от sturr :
Wildcat, а зачем?
Я подумал, что вы учитесь писать драйверы для фонарей, тогда следующим упражнением после написания программного ШИМ было бы освоение аппаратного. Ну нет так нет...
Wildcat вне форума   Ответить с цитированием Вверх
Старый 30.03.2017, 15:44   60
sturr
frugal flashaholic
 
Аватар для sturr
 
Регистрация: 11.01.2011
Последняя активность: 25.09.2022 19:57
Адрес: Ufa, Russia
Сообщений: 1008
Сказал(а) спасибо: 33
Поблагодарили: 175 раз(а) в 125 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR. Часть 2.

Исправлена мелкая недоработка урезанной версии из-за которой при разряде аккумулятора после автоматического снижения режима на один шаг следующее ручное переключение переводило в moon режим вместо перехода на режим вверх (подключаем на PB0 один регулятор 7135, на PB1 все остальные).

#include <ioavr.h>
#include <intrinsics.h>
volatile __regvar __no_init unsigned char mode @ 15;
volatile __regvar __no_init unsigned char power_low_counter @ 14;
volatile __regvar __no_init unsigned int adc_c @ 12;
volatile __no_init unsigned int ee_mode;
#ifdef __cplusplus
extern "C" {
#endif
char __low_level_init()
{ CLKPR|=(1<<CLKPCE);
CLKPR=1;
DDRB=(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(0<<DDB2)|(1<<DDB1)|(1<<DDB0);
PORTB=(0<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(0<<PORTB1)|(0<<PORTB0);
ACSR=(1<<ACD); //Analog Comparator Disable
DIDR0=(1<<ADC0D)|(0<<ADC1D)|(1<<ADC2D)|(1<<ADC3D)|(1<<AIN1D)|(1<<AIN0D);
PRR=(1<<PRTIM0)|(0<<PRADC);
ADMUX=(1<<REFS0)| 1; // Vref=1.1V , ADC1
ADCSRA=(1<<ADEN)|(0<<ADSC)|(1<<ADATE)|(0<<ADIF)|(1<<ADIE)|(1<<ADPS2)|(0<<ADPS1)|(1<<ADPS0);
ADCSRB=0;
return 1; }
#ifdef __cplusplus
}
#endif
#pragma vector=ADC_vect
__interrupt void ADC_Interrupt(void)
{ switch(mode)
{ case 0: // High
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=0; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB0);
PORTB|=(1<<PORTB1);
break;
case 1: // Medium
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=1; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB0);
break;
case 2: // Low
if(ADC<531) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=2; mode++; power_low_counter=0; }
PORTB|=(1<<PORTB0);
__delay_cycles(126);
PORTB&=~(1<<PORTB0);
break;
case 3: // Moon
if(ADC<530) power_low_counter++; else power_low_counter=0;
if(power_low_counter>250) { ee_mode=3; mode++; }
PORTB|=(1<<PORTB0);
__delay_cycles(6);
PORTB&=~(1<<PORTB0);
break;
default: // Power Down
PORTB&=~(1<<PORTB0);
PORTB&=~(1<<PORTB1);
MCUCR=(1<<SE)|(2<<SM0);
__sleep();
break;
}
adc_c++;
};

int main( void )
{ ADCSRA|=(1<<ADSC);
__enable_interrupt();
adc_c=0;
power_low_counter=0;
mode=ee_mode;
switch(mode)
{ case 0:
ee_mode=3;
break;
case 1:
case 2:
case 3:
ee_mode--;
break;
default:
mode=3;
ee_mode=2;
break; }
for(; { MCUCR=(1<<SE)|(1<<SM0); __sleep(); } }
sturr вне форума   Ответить с цитированием Вверх
Ответ  Создать новую тему
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск





Copyright ©2007 - 2024, FONAREVKA.RU

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

Правила форума | Отказ от ответственности

Время генерации страницы 0.14631 секунды с 17 запросами