Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Софт:обсуждение программного обеспечения для умного дома
  • Страница:
  • 1
  • 2

ТЕМА: Алгоритм передачи данных в виде цифрового кода на 2262.

Алгоритм передачи данных в виде цифрового кода на 2262. 14 Март 2015 15:40 #2559

  • AVL
  • AVL аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 39
  • Спасибо получено: 5
  • Репутация: -1
Всем привет!
Пробую разобраться как ПРАВИЛЬНО написать на Си передачу для 2262. Худо-бедно я сам написал, но понимаю, что мой код очень далёк не то что до идеального, а и до правильно написанного, хоть в реальной жизни этот код у меня и работает (Тини2313 посылает через радиоканал код на 2272 и 2272 их удачно принимает).
Итак, пробую скомпилировать код (Пример подпрограммы для отправки данных на чистом Си (Передатчик)) с этой станицы: homes-smart.ru/index.php/oborudovanie/be...da-na-radiomodulyakh
Получаю ошибки компиляции:
Error: F:\Progger\AVR\2262\2313\2262_2313.c(23): must declare first in block -- unsigned short repeats = 1 << (((unsigned long)data >> 20) & 7);

Error: F:\Progger\AVR\2262\2313\2262_2313.c(27): must declare first in block -- unsigned long dataBase4 = 0; uint8_t i;

Error: F:\Progger\AVR\2262\2313\2262_2313.c(27): undefined symbol 'uint8_t' -- unsigned long dataBase4 = 0; uint8_t i;

Error: F:\Progger\AVR\2262\2313\2262_2313.c(29): undefined symbol 'i' -- for (i=0; i<12; i++) {

Error: F:\Progger\AVR\2262\2313\2262_2313.c(29): undefined symbol 'i'
Error: F:\Progger\AVR\2262\2313\2262_2313.c(29): undefined symbol 'i'
Error: F:\Progger\AVR\2262\2313\2262_2313.c(41): declaration syntax error
Error: F:\Progger\AVR\2262\2313\2262_2313.c(41): '(' expected
Error: F:\Progger\AVR\2262\2313\2262_2313.c(45): declaration syntax error


Я некоторые ошибки убрал (тут они уже не указаны), но застрял на самой первой в вышеуказанном списке.
Как её грамотно убрать?
И ещё по тексту мне не ясно откуда берётся 3L в этой строке: data |= 3L << 20;

Спасибо!

Прикрепляю оригинальный текст прграммы, что б далеко не бегать:
#define RC_BIT         3 // пин

#define periodusec 400 // mcs период

void sendRC(unsigned long data) { // , unsigned short pin 531 440 max    

 DDRB |= _BV(RC_BIT);

data |= 3L << 20;

unsigned short repeats = 1 << (((unsigned long)data >> 20) & 7);

data = data & 0xfffff; //truncate to 20 bit

unsigned long dataBase4 = 0; uint8_t i;

for (i=0; i<12; i++) {

dataBase4<<=2;

dataBase4|=(data%3);

data/=3;

}

unsigned short int j;

for (j=0;j<repeats;j++) {

data=dataBase4; uint8_t i;

for (i=0; i<12; i++) { switch (data & 3) {

case 0:

PORTB |= _BV(RC_BIT);

_delay_us(periodusec);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec*3);

PORTB |= _BV(RC_BIT);

_delay_us(periodusec);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec*3);

break; case 1: PORTB |= _BV(RC_BIT);

_delay_us(periodusec*3);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec);

PORTB |= _BV(RC_BIT);

_delay_us(periodusec*3);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec);

break;

case 2:

PORTB |= _BV(RC_BIT);

_delay_us(periodusec);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec*3);

PORTB |= _BV(RC_BIT);

_delay_us(periodusec*3);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec);

break;

} 

data>>=2;

}

PORTB |= _BV(RC_BIT);

_delay_us(periodusec);

PORTB &= ~_BV(RC_BIT);

_delay_us(periodusec*31);

} }
Последнее редактирование: 14 Март 2015 15:56 от AVL.
Администратор запретил публиковать записи гостям.

Алгоритм передачи данных в виде цифрового кода на 2262. 14 Март 2015 21:58 #2594

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
Похоже не все типы данных подключены..
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

Алгоритм передачи данных в виде цифрового кода на 2262. 15 Март 2015 12:02 #2634

  • AVL
  • AVL аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 39
  • Спасибо получено: 5
  • Репутация: -1
Не хорошее у меня предчувствие, что надо все эти библиотеки подключать:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
#include <fcntl.h>
#include <assert.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <bcm2835.h>
#include <unistd.h>
Я прав?
Администратор запретил публиковать записи гостям.

Алгоритм передачи данных в виде цифрового кода на 2262. 15 Март 2015 18:45 #2645

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
Наверно что-то типа #include <sys/types.h>
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.
Спасибо сказали: AVL

Алгоритм передачи данных в виде цифрового кода на 2262. 16 Март 2015 10:54 #2658

  • AVL
  • AVL аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 39
  • Спасибо получено: 5
  • Репутация: -1
Adminhs пишет:
Наверно что-то типа #include <sys/types.h>
Этот хедер используется в АврСтудио, а я пишу в Кодевижине.
Что делать?
Переходить в АврСтудио? Нед другого решения, что б запустить этот код в Кодевижие?
Спасибо!
Администратор запретил публиковать записи гостям.

Алгоритм передачи данных в виде цифрового кода на 2262. 16 Март 2015 15:54 #2664

  • AVL
  • AVL аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 39
  • Спасибо получено: 5
  • Репутация: -1
Почему никто не помогает?
Вопросы ж банальные...
Почему я должен сам себе отвечать??? )))

Отвечаю: код в примере написан под Atmel Sudio.
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Модераторы: FlyRouter, Dolfik
Время создания страницы: 0.115 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.