Фрикер Клуб
 

Вернуться   Фрикер Клуб > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 25.04.2020, 21:31   #421
zeaxm
Гость клуба
 
Регистрация: 18.08.2015
Сообщений: 1
По умолчанию Re: Исходники под ардуину

Цитата:
Сообщение от Maks-in-net
Спасибо, за код. немного изменил его под свой дисплей 128х32. Добавил продушенные инициализации кнопок. И заменил условия входа в меню выбора режима работы. А то попадал сразу на отправку из ерома. А там только 0. И все заработало. Правда пока не испытал на шлагах.

"на шлагах" проверили? Кодом не поделитесь?
zeaxm вне форума   Ответить с цитированием
Старый 12.06.2020, 20:41   #422
кузьма
Гость клуба
 
Регистрация: 12.06.2020
Сообщений: 1
По умолчанию Re: Исходники под ардуину

Здравствуйте уважаемые господа в инете нашел вот такой скетч

возможно это творение кого то из вас вроде под keeloq
прошил ардуину но у меня не отправляет посылки только принемает брелок у меня от мангуста старенький зеленый с тремя кнопками название не знаю правильное этой сигналки но код принемает хочу разобраться но знаний маловата в чем проблема может быть и как правильно подключать железки икакие лучше взять под это дело
Код HTML:
#include "math.h"


#define txPin 8

#define rxPin 7

#define signalPin 6



int lastRxValue = 0;

int tempRxValue = 0;

unsigned long lastRxTime = 0;

unsigned long tempTime = 0;

unsigned long difTime = 0;

boolean bValidPacket = false;

int decodeMethod = 1; //0 real - as in manual, 1 inver as Oleg do





//Global vars end

void send_meander(int time){

digitalWrite(txPin, HIGH);

delayMicroseconds(time);

digitalWrite(txPin, LOW);

delayMicroseconds(time);

}

//keelog start

int keelog_state = 0;

int keelogCounter = 0;

byte keelog_code[9];



void keelog_vardump(){

if(decodeMethod == 0){

Serial.println(" - keelog origin - ");

}

else{

Serial.println(" - keelog invert - ");

}

Serial.print(keelog_code[0], HEX);

Serial.print(keelog_code[1], HEX);

Serial.print(keelog_code[2], HEX);

Serial.print(keelog_code[3], HEX);

Serial.println("-hop");

Serial.print(keelog_code[4], HEX);

Serial.print(keelog_code[5], HEX);

Serial.print(keelog_code[6], HEX);

Serial.println("-fix");

Serial.print(keelog_code[7], HEX);

Serial.println("-btn");

Serial.print(keelog_code[8], HEX);

Serial.println("-dop");



/*for(int i = 0; i<9; i++){

Serial.print(keelog_code[i], HEX);

Serial.print(" - ");

}*/

keelog_send(keelog_code);

digitalWrite(signalPin, HIGH);

delay(100);

digitalWrite(signalPin, LOW);

keelog_state = 0;

for(int i = 0; i<9; i++){

keelog_code[i]=0;

}

}

void keelog_send(byte* keelog_code){

Serial.println("- sending keelog -");

for(int i = 0; i<9; i++){

Serial.print(keelog_code[i], HEX);

Serial.print(" - ");

}

for(int i = 0; i<11; i++){//посылаем преамблу

send_meander(400);

}

digitalWrite(txPin, HIGH);

delayMicroseconds(400);

digitalWrite(txPin, LOW);

delayMicroseconds(4000);//посылаем хедер



for( int i = 0; i<9; i++){

if(decodeMethod==1){

for(int i2 = 7;i2>=0;i2--){

if(bitRead(keelog_code[i], i2)){

digitalWrite(txPin, HIGH);

delayMicroseconds(400);

digitalWrite(txPin, LOW);

delayMicroseconds(2*400);

}

else{

digitalWrite(txPin, HIGH);

delayMicroseconds(2*400);

digitalWrite(txPin, LOW);

delayMicroseconds(400);
}

}
}

else{

for(int i2 = 0;i2<8;i2++){

if(!bitRead(keelog_code[i], i2)){

digitalWrite(txPin, HIGH);

delayMicroseconds(400);

digitalWrite(txPin, LOW);

delayMicroseconds(2*400);

}

else{

digitalWrite(txPin, HIGH);

delayMicroseconds(2*400);

digitalWrite(txPin, LOW);

delayMicroseconds(400);

}

}

}



}

}

void keelog_get(){

bValidPacket = false;

if(keelog_state==0){//ждем преамбулу и хедер

if(difTime > 280 && difTime < 620 && lastRxValue != tempRxValue){

keelogCounter ++;

}

else{

if(keelogCounter==23){

if(difTime>2800 && difTime<6200 && lastRxValue == 0){

keelog_state=1;

}

}

keelogCounter = 0;

}

}

else if(keelog_state==1){// получаем биты

if(difTime > 560 && difTime < 1240 && lastRxValue == 1){// получили 1

if(decodeMethod==0){

keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]>>1)|B10000000;

}

else{

keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]<<1)|B00000000;

}

bValidPacket = true;

}

else if(difTime > 280 && difTime < 620 && lastRxValue == 1){

if(decodeMethod==0){

keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]>>1)|B00000000;

}

else{

keelog_code[round(keelogCounter/8)] = (keelog_code[round(keelogCounter/8)]<<1)|B00000001;

}

bValidPacket = true;

}

else if(lastRxValue == 0){

}

else{

keelog_state=1;

keelogCounter = 0;

}



if(bValidPacket){

keelogCounter++;

if(keelogCounter==66){

keelog_vardump();

keelogCounter = 0;

keelog_state = 0;

}

}

}

}

//keelog end



void setup() {

pinMode(txPin, OUTPUT);

pinMode(rxPin, INPUT);

pinMode(signalPin, OUTPUT);

//

Serial.begin(9600);

Serial.println("start");

lastRxValue = digitalRead(rxPin);

lastRxTime = micros();

//attachInterrupt(0, grab, CHANGE);

}



void loop() {

tempRxValue = digitalRead(rxPin);



if(tempRxValue != lastRxValue){

tempTime = micros();

difTime = tempTime - lastRxTime;

keelog_get();

lastRxTime = tempTime;

lastRxValue = tempRxValue;

}

Последний раз редактировалось DIVER_SANT; 15.06.2020 в 18:32.
кузьма вне форума   Ответить с цитированием
Старый 14.06.2020, 00:46   #423
Бурый
Резидент клуба
 
Аватар для Бурый
 
Регистрация: 05.01.2014
Сообщений: 500
По умолчанию Re: Исходники под ардуину

Так верно же, у Вас в цикле нет функции передачи (keelog_send)
__________________
Планировалось сделать "устройство"...и снова получились часы. Бой курантов тревожит двор)
Бурый вне форума   Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 10:18. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com