для одной кнопки не нужны никакие функции... протоколы... и т.д.
достаточно просто передать один код на включение и этот же код передать на выключение. Всего нужен один секретный код. ))
число не нужно отправлять на порт. Мы просто включаем/выключаем порт через разные промежутки времени.
Функцию можно использовать только одну - delay. Этого достаточно для передачи любого кода))
Программа для тиньки ))
-------------------------------------
#include <tiny13.h>
#include <delay.h>
void main(void)
{
// настроили порт:
DDRB.1=1;
PORTB.1=0;
// начало программы:
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
PORTB.1=1; // включили
delay_ms(1); // подождали...
PORTB.1=0; // выключили
delay_ms(1); // подождали...
PORTB.1=1; // включили
delay_ms(2); // подождали...
PORTB.1=0; // выключили
delay_ms(2); // подождали...
// ... и т.д. на сколько хватит памяти тиньки ))
// конец программы.
}
-----------------------------------------------------
Работает просто.
Подаём питание на тинку через кнопку. На выходе тиньки видим вот такой код:
01010... и т.д.))
Всё ))