| 
		
			| nikopol70 | 30.06.2015 23:06 |  
 
	Цитата: 
	
		| 
 
					Сообщение от Chubaka885
					(Сообщение 331699)
				 Скетч бы посмотреть. Он у тебя залился без проблем. Библиотеки USBAPI.h, HID.cpp менял? 
 |  бибилотеки менял, залилось без проблем, прежде чем заливать изучил и отштудировал тему :tease:
 
скетч вот
 
	PHP код: 
		
 
		
			
#include <avr/sleep.h>#include <avr/power.h>
 
 int ACCPin = 2; // Пин АСС
 int sleepStatus = 0; // Переменная для хранения статуса (спим, проснулись) - не используется в коде
 
 #define pinKIS1 7 // питание HUB KIS
 #define pinIsoAmp 6 // питание ISOAmp
 #define relePinTablet 10 // OTG + датчик холла
 #define relePinAmp 9 // remote Усилителя, Антены
 #define pinRearCam 5 // питание камеры заднего хода
 #define ONKIS 100 // время включения KIS, isoAmp
 #define ONTablet 2000 // время включения планшета
 #define ONAmp 4000 // время включения Усилителя, Антены RemoteAmp
 #define OFFKIS 10000 // время выключения KIS
 #define OFFTablet 5000 // время выключения планшета
 #define OFFAmp 4000 // время выключения Усилителя, Антены
 
 unsigned long duration, millisold, off = 0;
 boolean stateACC, relestate1, relestate2, relestate3 = 0;
 
 int analogPin=A0; //пин для резистивных кнопок
 int data;
 int data1 = 0;
 int flag = 0;
 unsigned long eventTime = 0;
 
 
 void wakeUpNow()                 // Прерывание сработает после пробуждения
 {
 if (sleepStatus)               // Если мы спали,
 {
 sleep_disable();             // то первое, что нужно сделать после просыпания - выключить спящий режим
 sleepStatus = 0;             // В переменную заносим статус бодрствования
 detachInterrupt(1);          // Выключаем прерывание - при нормальном режиме wakeUpNow() не будет вызываться
 }
 }
 
 
 void setup()
 {
 pinMode(ACCPin, INPUT);
 attachInterrupt(1, wakeUpNow, FALLING);    // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow
 pinMode(pinKIS1, OUTPUT);
 pinMode(pinIsoAmp, OUTPUT);
 pinMode(relePinTablet, OUTPUT);
 pinMode(relePinAmp, OUTPUT);
 pinMode(pinRearCam, OUTPUT);
 Serial.begin(9600);
 }
 
 void sleepNow()                          // Функция увода ардуины в спячку.
 {
 set_sleep_mode(SLEEP_MODE_PWR_DOWN);   // Здесь устанавливается режим сна
 sleep_enable();                        // Включаем sleep-бит в регистре mcucr. Теперь возможен слип
 
 attachInterrupt(1, wakeUpNow, FALLING);   // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow при появлении низкого уровня на пине 2
 
 sleepStatus = 1;                       // В переменную заносим статус сна
 sleep_mode();                          // Здесь устройство перейдет в режим сна!!!
 //-------------------------ПОСЛЕ ПРОСЫПАНИЯ ВЫПОЛНЕНИЕ КОДА ПРОДОЛЖИТСЯ ОТСЮДА!!!--------------------------//
 }
 
 
 void loop()
 {
 Power();
 Knopki();
 delay(5);
 }
 
 void Power()
 {
 if (!digitalRead(ACCPin)&&stateACC)
 {
 stateACC=0;
 duration = millis();
 }
 if (digitalRead(ACCPin)&&!stateACC)
 {
 stateACC=1;
 off = millis();
 }
 if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONKIS)
 {
 digitalWrite(pinKIS1, HIGH);
 digitalWrite(pinIsoAmp, HIGH);
 relestate1 = 1;
 millisold = millis();
 }
 if(!digitalRead(ACCPin) && !stateACC &&  millis ()-duration > ONTablet)
 {
 digitalWrite(relePinTablet, HIGH);
 relestate2 = 1;
 millisold = millis();
 }
 if(!digitalRead(ACCPin) && !stateACC &&  millis ()-duration > ONAmp)
 {
 digitalWrite(relePinAmp, HIGH);
 relestate3 = 1;
 millisold = millis();
 }
 if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
 {
 Remote.pause();// нажимаем пузу!
 Remote.clear();
 digitalWrite(pinKIS1, LOW);
 digitalWrite(pinIsoAmp, LOW);
 digitalWrite(pinRearCam, LOW);
 relestate1 = 0;
 millisold = millis();
 Serial.end();
 delay(100);
 sleepNow();
 }
 if(digitalRead(ACCPin) && stateACC &&  millis ()-off > OFFTablet)
 {
 digitalWrite(relePinTablet, LOW);
 relestate2 = 0;
 millisold = millis();
 }
 if(digitalRead(ACCPin) && stateACC &&  millis ()-off > OFFAmp)
 {
 digitalWrite(relePinAmp, LOW);
 relestate3 = 0;
 millisold = millis();
 }
 }
 
 void Knopki()
 {
 data=analogRead(analogPin);
 
 if(data>=950 && data1 != 0 && flag <= 1)
 {
 Serial.print("<release:");
 Serial.print(data1);
 Serial.print(">");
 data1 = 0;
 flag = 0;
 delay(10);
 }
 
 if(data>=950)
 {
 eventTime = millis();
 }
 
 if(data<=949 && flag != 1 && millis()-eventTime>=50 && millis()-eventTime<=800)
 {
 flag = 2;
 if(millis()-eventTime <= 60) data1 = data;
 }
 
 if(data>=950 && flag == 2)
 {
 Serial.print("<click:");
 Serial.print(data1);
 Serial.print(">");
 flag = 0;
 delay(10);
 }
 
 if(data<=949 && flag == 2 && millis()-eventTime>800)
 {
 Serial.print("<hold:");
 Serial.print(data);
 Serial.print(">");
 data1 = data;
 flag = 1;
 delay(10);
 }
 }
 
 |