Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Remote Controller fot __AVR_ATtiny85__
- // Alexander Grigoriev 2018
- // Made by GAVS for LEON
- #include "Arduino.h"
- #include <key_header.h>
- #include <avr/io.h>
- //#include <avr/interrupt.h>
- //#include <util/delay.h>
- //#include <avr/sleep.h>
- //#include <compat/deprecated.h>
- #include <avr/eeprom.h>
- //datasheet attiny 85
- // http : //ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf
- // pin1, PB5 (PCINT5 / RESET / ADC0 / dW) // pin8, VCC
- // pin2, PB3 (PCINT3/XTAL1/CLKI/OC1B/ADC3) // pin7, PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2)
- // pin3, PB4 (PCINT4/XTAL2/CLKO/OC1B/ADC2) // pin6, PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1)
- // pin4, GND // pin5, PB0 (MOSI/DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0)
- void key1();
- void key2();
- void key3();
- void kkey(int t);
- #define TRANS_PIN PB3
- #define INPUT_PIN0 PB0 // open door
- #define INPUT_PIN1 PB1 // close door
- #define INPUT_PIN2 PB2 // open offer
- // #include <rc.h>
- // volatile char state;
- int state;
- boolean lvl;
- int blc;
- int offDelay = 150;
- void setup()
- {
- // Configure TRANS_PIN as output
- pinMode(TRANS_PIN, OUTPUT);
- pinMode(INPUT_PIN0, INPUT);
- pinMode(INPUT_PIN1, INPUT);
- pinMode(INPUT_PIN2, INPUT);
- digitalWrite(INPUT_PIN0, LOW);
- digitalWrite(INPUT_PIN1, LOW);
- digitalWrite(INPUT_PIN2, LOW);
- digitalWrite(TRANS_PIN, LOW);
- }
- void loop()
- {
- // Даем объекту бибилотеки знать, что надо обновить состояние - мы вошли в новый цкил loop
- if (digitalRead(INPUT_PIN0))
- {
- delayMicroseconds(200);
- if (digitalRead(INPUT_PIN0))
- state = 1;
- }
- else
- if (digitalRead(INPUT_PIN1))
- {
- delayMicroseconds(200);
- if (digitalRead(INPUT_PIN1))
- state = 2;
- }
- else
- if (digitalRead(INPUT_PIN2))
- {
- delayMicroseconds(200);
- if (digitalRead(INPUT_PIN2))
- state = 3;
- }
- else
- state = 0;
- kkey(state);
- digitalWrite(TRANS_PIN, LOW);
- }
- void key1()
- {
- lvl = LOW;
- for (int t = 0; t < 155; t++)
- {
- digitalWrite(TRANS_PIN, lvl);
- delayMicroseconds(pgm_read_word_near(&Key1[t]) - offDelay);
- lvl = !lvl;
- }
- }
- void key2()
- {
- lvl = LOW;
- for (int t = 0; t < 155; t++)
- {
- digitalWrite(TRANS_PIN, lvl);
- delayMicroseconds(pgm_read_word_near(&Key2[t]) - offDelay);
- lvl = !lvl;
- }
- }
- void key3()
- {
- lvl = LOW;
- for (int t = 0; t < 108; t++)
- {
- digitalWrite(TRANS_PIN, lvl);
- delayMicroseconds(pgm_read_word_near(&Key3[t]) - offDelay);
- lvl = !lvl;
- }
- }
- void kkey(int e)
- {
- /*
- for (int y=1; y<= e; y++)
- {
- digitalWrite(TRANS_PIN,HIGH);
- delayMicroseconds(1000);
- digitalWrite(TRANS_PIN, LOW);
- delayMicroseconds(1000);
- }
- delayMicroseconds(5000);
- */
- switch (e)
- {
- case 1:
- key3();
- break;
- case 2:
- key2();
- break;
- case 3:
- key1();
- break;
- }
- // delayMicroseconds(200);
- state = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement