Чт июн 08, 2023 12:48:48
Пт июн 09, 2023 18:22:44
#include "avr/io.h"
#include "avr/interrupt.h"
char keeloq_receive ()
{
char bit,SAMPLE_A,SAMPLE_B,SAMPLE_С;
//крутимся в цикле, пока на выходе приемника 0
while (1)
{
if (PINB& (1<<PB0)) break; //если прочитали 1 — выходим из цикла
}
//окажемся здесь, когда поймаем фронт
_delay_us (SAMPLE_A); //ждем время А
if (! (PINB& (1<<PB0))) return 255; //если в точке А прочитали 0 — значит это не килок, выходим из функции
_delay_us (SAMPLE_B); //ждем время от А до B
if (PINB& (1<<PB0)) bit=0; else bit=1; //если в точке B прочитали 1 — значит приняли бит данных 0, если прочитали 0 — то приняли бит 1.
_delay_us (SAMPLE_С); //ждем время от B до C
if (PINB& (1<<PB0)) return 255; //если в точке C прочитали 1 — значит сигнал не килок, выходим.
//возвращаем как результат принятый бит.
return bit;
}
Build started 9.6.2023 at 18:29:41
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -O0 -MD -MP -MT CAME.o -MF dep/CAME.o.d -c ../CAME.c
../CAME.c: In function `keeloq_receive':
../CAME.c:5: error: stray '\209' in program
../CAME.c:15: warning: implicit declaration of function `_delay_us'
../CAME.c:21: error: stray '\209' in program
make: *** [CAME.o] Error 1
Build failed with 2 errors and 1 warnings...
Пт июн 09, 2023 20:18:26
Сб июн 10, 2023 10:26:04
stray = паразитный
Сб июн 10, 2023 13:14:06
Пн июн 12, 2023 08:46:47
Пн июн 12, 2023 15:43:17
Пн июн 12, 2023 16:16:10
Пт июн 23, 2023 10:58:18
Пт июн 23, 2023 19:34:02
Пт июн 23, 2023 20:28:40
Пт июн 23, 2023 21:38:36
Пт июн 23, 2023 21:58:46
// описание(объявление) функции
char keeloq_receive (void);
// обЪявляем переменную для приема данных
char oak;
void setup() {
// put your setup code here, to run once:
// использование функции или тут
oak = keeloq_receive();
}
void loop() {
// put your main code here, to run repeatedly:
// использование функции или тут
oak = keeloq_receive();
}
// реализация функции
char keeloq_receive()
{
// объявление и иницивлизация "внутренних переменных"
char temp = 0;
// * в ардуино функция delayMicroseconds принимает unsigned int *
const unsigned int SAMPLE_A = 100; // "от фонаря"
const unsigned int SAMPLE_B = 150; // "от фонаря"
const unsigned int SAMPLE_C = 120; // "от фонаря"
//крутимся в цикле, пока на выходе приемника 0
do
{
temp = PINB & (1<<PB0);
} while (!temp); //если прочитали 1 — выходим из цикла
//окажемся здесь, когда поймаем фронт
//_delay_us (SAMPLE_A); //ждем время А
delayMicroseconds(SAMPLE_A); //ждем время А "по адуриньи"
//если в точке А прочитали 0 — значит это не килок,
//выходим из функции
if (!(PINB & (1<<PB0))) {return -1;};
//_delay_us (SAMPLE_B); //ждем время от А до B
delayMicroseconds(SAMPLE_B); //ждем время B "по адуриньи"
//если в точке B прочитали 1 — значит приняли бит данных 0,
// если прочитали 0 — то приняли бит 1.
temp = (PINB & (1<<PB0)) ? 0 : 1;
return temp;
//_delay_us (SAMPLE_С); //ждем время от B до C
delayMicroseconds(SAMPLE_C); //ждем время C "по адуриньи"
//если в точке C прочитали 1 — значит сигнал не килок, выходим.
if ((PINB& (1<<PB0))) {return -1;};
}
//----------
//---------- файла/end of file---------------------
Сб июн 24, 2023 22:08:19
Вс июн 25, 2023 01:22:42
Ср июн 28, 2023 12:40:32
Ср июн 28, 2023 16:23:01
Ср июн 28, 2023 17:42:13
Чт июн 29, 2023 18:57:26
Чт июн 29, 2023 19:47:35