Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Котуинко

Чт июн 08, 2023 12:48:48

Это описание алгоритма - а с помощью какого компилятора и какой системы команд этот алгоритм будет реализован уже без разницы. Хотя изначально рассматривался компилятор ассемблера (для АВР и ПИКушек).
Естественно при реализации будут вноситься изменения, свойственные соответствующей системе команд, ядру и аппаратным возможностям используемого МК и синтаксису компилятора (в случае с ЯВУ).
Насчет "вечных двигателей"... То пока не актуально.
8)

Re: Котуинко

Пт июн 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...



И вообще,что такое stray'\209' ?

В программе и чисел таких не присутствует,209
код ошибки ?

Re: Котуинко

Пт июн 09, 2023 20:18:26

Смотрим документацию на компилятор, которым пользуемся...
:roll:

Re: Котуинко

Сб июн 10, 2023 10:26:04

Изображение
Нету там ничего. Даже по ключевому слову stray (перевод заблудиться,потеряться)ничего.
Такое ощущение,что ищу Изображение
p.s. добавьте такой смайлик себе на форум,админы. Дарю бесплатно. :)

https://ru.stackoverflow.com/questions/ ... 138#622138

з.ы.
stray = паразитный

паразиты это баги(bag)
Последний раз редактировалось главный колбасист Сб июн 10, 2023 21:27:50, всего редактировалось 2 раз(а).

Re: Котуинко

Сб июн 10, 2023 13:14:06

stray = паразитный
т.е строка имеет паразита типа 209. (ошибка 209).
:tea:
И вообще -то отличия между логическими и бинарными операциями имеются...
Может таки есть смысл оценивать истинность/ложь результата?
т.е не
if (PINB& (1<<PB0)){},
а
if ((PINB& (1<<PB0))){}......
8)

Re: Котуинко

Пн июн 12, 2023 08:46:47

ИНТЕРЕСНАЯ ПОДБОРКА ЛИТЕРАТУРЫ
https://elektromehanika.org/load/serii_ ... 0-1-0-4428
тащим, пока лежит.
:hunger:

Re: Котуинко

Пн июн 12, 2023 15:43:17

Если бы там было справочное пособие по ремонту и обслуживанию вечных двигателей...

Re: Котуинко

Пн июн 12, 2023 16:16:10

Это в раздел "магия" надо топать.
8)

Re: Котуинко

Пт июн 23, 2023 10:58:18

Допилил таки алгоритм для теста (и макеткой помучал).
Индикатором является окошко терминала (любого - хош самой IDE, хош иного происхождения) на ПК.
схемка теста:
https://img.radiokot.ru/files/20529/365ylytg02.GIF
и сама прожка:
encoder.zip
(4.32 KiB) Скачиваний: 24

Совсем "творческо упадко"...
:?
:sleep:

Re: Котуинко

Пт июн 23, 2023 19:34:02

https://electronix.ru/forum/index.php?a ... c&id=33669
Там чувак в конце объясняет что надо делать в случае такого варнинга.
C:/WinAVR/avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>."
In file included from C:/WinAVR/avr/include/avr/delay.h:37,
from ../CAME.c:3:
Тот кто задавал вопрос,вроде как понял,исправил и затих.
Или я такой совсем тупой,что ничего не получается.И файлы эти нашёл и посмотрел,
avr/delay.h and util/delay.h , и название исправил,и то же самое остаётся.

Спойлер#include "avr/io.h"
#include "avr/interrupt.h"
#include "avr/delay.h"
char keeloq_receive (void)
{
char bit,SAMPLE_A,SAMPLE_B;
// определение системных силовых выводов аппаратной обвязки
const byte HLtmr = 8; // сигнального выхода таймера
const byte HLbud = 2; // сигнальный вывод комплекта бодунов *!!
const byte DTM = 7; // сигнальный вывод звуковой головки

//крутимся в цикле, пока на выходе приемника 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;
}
.

Re: Котуинко

Пт июн 23, 2023 20:28:40

Это что за "адская смесь" в текстке то?
:shock:
не то WinAVR, не то адурино (не то еще Х/З что)...
:dont_know:
Ужшш как-то в одном компиляторе работать надо...
Да и глупостей понаворочено ...
:facepalm:

Re: Котуинко

Пт июн 23, 2023 21:38:36

:))) Это кусок вашего энкодера засунут,чтобы смешнее было.
Это не считается. Щас мы его уберём. Вот так.
Спойлер#include "avr/io.h"
#include "avr/interrupt.h"
#include "avr/delay.h"
char keeloq_receive (void)
{
char bit,SAMPLE_A,SAMPLE_B;

//крутимся в цикле, пока на выходе приемника 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;
}

Спойлерrm -rf CAME.o CAME.elf dep/* CAME.hex CAME.eep
Build succeeded with 0 Warnings...
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -O0 -MD -MP -MT CAME.o -MF dep/CAME.o.d -c ../CAME.c
In file included from ../CAME.c:3:
C:/WinAVR/avr/include/avr/delay.h:36:2: warning: #warning "This /*file has been moved to <util/delay.h>."
In file included from C:/WinAVR/avr/include/avr/delay.h:37,
from ../CAME.c:3:
C:/WinAVR/avr/include/util/delay.h:136:3: warning: #warning "F_CPU not defined for <util/delay.h>"
avr-gcc.exe -mmcu=atmega16 CAME.o -o CAME.elf
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm16.o: In function `__vectors':
../../../../../avr-libc-1.4.4/crt1/gcrt1.S:51: undefined reference to `main'
make: *** [CAME.elf] Error 1
Build failed with 1 errors and 2 warnings...


Это чтоб не думали что мы только своими проблемами озабочены,и ничего другого не читаем.
Последний раз редактировалось главный колбасист Сб июн 24, 2023 09:02:43, всего редактировалось 1 раз.

Re: Котуинко

Пт июн 23, 2023 21:58:46

Смешно, когда пользователь ПК не следит за текущим языком редактора при написании программы.
А затем с остервенением "ищет ошибку"....
:tea:
По крайней мере в стиле адуринки этот "опус дуба" выглядит вот так:

Спойлер
Код:
// описание(объявление) функции
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---------------------

8)
в первоисточнике в
SAMPLE_С
последний символ набран на "ру" вместо "англ"
:wink:

Re: Котуинко

Сб июн 24, 2023 22:08:19

Прилепил к энкодеру с адуринкой дисплейчик...
https://img.radiokot.ru/files/20529/367kk868cv.GIF
и добавил к нему тест
encoder.zip
(49.3 KiB) Скачиваний: 26

приятно обрадовало медленнодействие - интервал между опросами в 2-5 миллисекунд.
Ожидал более высоких требований.
:hunger:

Re: Котуинко

Вс июн 25, 2023 01:22:42

последний символ набран на "ру" вместо "англ"
:wink:

Клавиша "си"/"эс" в этом плане особенно опасна. Одна и та же закорючка на латинице и кириллице на одной кнопке...

Re: Котуинко

Ср июн 28, 2023 12:40:32

Последнее время стал весьма затруднен доступ к инсталляторам старо-добрых программ (включая свободно- бесплатные)...
Попробую сгрузить в сундук свои старые резервно-архивные запасы - мало ли чего может приключиться...
:roll:
:write:

Re: Котуинко

Ср июн 28, 2023 16:23:01

мало ли чего может приключиться...
:roll:
:write:

Может.

А что такое инсталяторы старых добрых программ?
Сами программы,чё ли ? Так там в каждом дистрибутиве свой инсталятор содержится.
з.ы. Дал бы мне кто нибудь эклипс для 32бит. или аналогичное что нибудь.

Re: Котуинко

Ср июн 28, 2023 17:42:13

Прожки с установщиками и документацией.
Вместо эклипса вроде EmBitz 2.30 рекомендовали...
Она в сундуке есть.
8)

Re: Котуинко

Чт июн 29, 2023 18:57:26

А какого софта не хватает?

Re: Котуинко

Чт июн 29, 2023 19:47:35

Похоже там интерес к АРМам - а это пока не моя область познаний.
8)
Ответить