Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Это в раздел "магия" надо топать.
8)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Допилил таки алгоритм для теста (и макеткой помучал).
Индикатором является окошко терминала (любого - хош самой IDE, хош иного происхождения) на ПК.
схемка теста:
https://img.radiokot.ru/files/20529/365ylytg02.GIF
и сама прожка:
encoder.zip
(4.32 КБ) 73 скачивания
Совсем "творческо упадко"...
:?
:sleep:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1398
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

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;
}
.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Это что за "адская смесь" в текстке то?
:shock:
не то WinAVR, не то адурино (не то еще Х/З что)...
:dont_know:
Ужшш как-то в одном компиляторе работать надо...
Да и глупостей понаворочено ...
:facepalm:
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1398
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

:))) Это кусок вашего энкодера засунут,чтобы смешнее было.
Это не считается. Щас мы его уберём. Вот так.
Спойлер#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 раз.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Смешно, когда пользователь ПК не следит за текущим языком редактора при написании программы.
А затем с остервенением "ищет ошибку"....
: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:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Прилепил к энкодеру с адуринкой дисплейчик...
https://img.radiokot.ru/files/20529/367kk868cv.GIF
и добавил к нему тест
encoder.zip
(49.3 КБ) 74 скачивания
приятно обрадовало медленнодействие - интервал между опросами в 2-5 миллисекунд.
Ожидал более высоких требований.
:hunger:
Друг Кота
Аватара пользователя
Сообщения: 7060
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="BOB51",url="/forum/viewtopic.php?p=4435504#p4435504"]последний символ набран на "ру" вместо "англ"
:wink:[/uquote]
Клавиша "си"/"эс" в этом плане особенно опасна. Одна и та же закорючка на латинице и кириллице на одной кнопке...
Астролябия-сама меряет, было бы что мерять!!!
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Последнее время стал весьма затруднен доступ к инсталляторам старо-добрых программ (включая свободно- бесплатные)...
Попробую сгрузить в сундук свои старые резервно-архивные запасы - мало ли чего может приключиться...
:roll:
:write:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1398
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

[uquote="BOB51",url="/forum/viewtopic.php?p=4438089#p4438089"]мало ли чего может приключиться...
:roll:
:write:[/uquote]
Может.

А что такое инсталяторы старых добрых программ?
Сами программы,чё ли ? Так там в каждом дистрибутиве свой инсталятор содержится.
з.ы. Дал бы мне кто нибудь эклипс для 32бит. или аналогичное что нибудь.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Прожки с установщиками и документацией.
Вместо эклипса вроде EmBitz 2.30 рекомендовали...
Она в сундуке есть.
8)
Грызет канифоль
Аватара пользователя
Сообщения: 275
Зарегистрирован: Вс окт 20, 2019 13:03:56

Сообщение Shuspano »

А какого софта не хватает?
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Похоже там интерес к АРМам - а это пока не моя область познаний.
8)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1398
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

[uquote="BOB51",url="/forum/viewtopic.php?p=4438264#p4438264"]EmBitz 2.30

8)[/uquote]
Загрузил. Требует больше семисот Мб для установки ?
Охо-хо. бедный мой компьютер. :shock:
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

И чего тут особенного?
Моя портабла адуринкоIDE 1.8.9 с "максимумом" платформ, воспринимаемых на ХР х32, весит ажшш 5 гигабайт (и это с удаленными резерв-архивами)...
:tea:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1398
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Распаковал,установилась нормально. А дальше ничего не понятно.
И ещё тут у вас что то страшное пишут по этой теме.
https://www.radiokot.ru/forum/viewtopic ... &start=160
з.ы. А в этой шняге можно писать без привязки к МК,просто с выводом на экран ?
printF-ы и scanf-ы типа ?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Для ПК свои IDE.
Lazarus, Dev-C++ да много чего еще...
:roll:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1398
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Да, Dev-C+ установилась, даже на другой диск,не загрузочный. Потому как места мало.И вроде как работает. :lol:
Ну теперь,держите меня семеро !
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Или готовьте замену компа после "случайно влез не туда"
8)
Друг Кота
Аватара пользователя
Сообщения: 15795
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Недоделанный проект на два энкодера
https://img.radiokot.ru/files/20529/36l9tnzy2s.GIF
twix.zip
(18.75 КБ) 70 скачиваний
к сожалению - прожка то вроде должна работать, но из-за отсутствия второго энкодера практическим тестом на макете не проверялась. Вывод на индикацию для второго энкодера также не выполнен (заложено для того место)...
Может когда "подопытного железка" попадется доведу до полного макетного испытания.
Пока как предположение - может кому сгодиться...
:roll:
Ответить

Вернуться в «Разные вопросы по МК»