roboforum.ru

Технический форум по робототехнике.

Беспроводная сеть

Re: Беспроводная сеть

Myp » 11 дек 2010, 15:21

для ТР24 есть код для васика под авр, когда придут попробую.
у автора вроде всё работает.

Re: Беспроводная сеть

DrGluck » 11 дек 2010, 15:56

для ТР24 есть код для васика под авр, когда придут попробую.
у автора вроде всё работает.


Быть может любопытно будет прочесть такой материал по TR24
http://wasm.ru/forum/viewtopic.php?pid=395391
эти в прошлом :)
http://www.terraelectronica.ru/board/index.php?showtopic=1043&st=0
http://forum.ixbt.com/topic.cgi?id=48:7870-7

Re: Беспроводная сеть

capitan blood » 11 дек 2010, 23:41

огромное спасибо всем, кто ответил.. и ещё большее спасибо тем, кто ответил по делу

теперь буду ковыряться по предоставленному материалу

Re: Беспроводная сеть

AnyWay » 14 дек 2010, 10:28

Что-то мне подсказывает, что для дисера логичней использовать виртуального робота. Датчики и сети с любыми параметрами легко задаются програмно. На первом этапе проблемы с железом - лишние. Когда будет реальная программа взаимодействия виртуальных роботов можно будет подобрать оптимальную конфигурацию железа под нее. Если необходимость есть.

Re: Беспроводная сеть

Duhas » 14 дек 2010, 19:15

ага, внедрение предполагаемых алгоритмы в предполагаемых роботов с предполагаемыми беспроводными сетями ...

Re: Беспроводная сеть

chubik » 27 фев 2012, 17:24

Здравствуйте! Пытаюсь связать два модуля TR24F - безрезультатно. Написал код(привожу ниже). По SPI регистры параметрируются, но как-то через раз, читаются отлично. Прерывание при отсылке на передатчике происходит, значит пакет с данными прошел, а вот на приемнике глухо. Регистры 0, 9-16 на стороне приемника и передатчика учтены и поставлены правильно. Помогите найти ошибку.
Пишу на CVAVR под Atmega8

Код: Выделить всёРазвернуть
#define RDY PORTC.4 //27 out
#define SCK PORTC.2 //25 out
#define DAT PORTC.0 // 23 in/out
#define INDAT PINC.0// 23
#define DAT_DDR DDRC.0 // 23
#define EN PORTC.5 //28 out
#define PSB PORTD.1 //3 out
#define INT PIND.2 // 4 in
//#define DRSSI PIND.6

flash unsigned char regs[25]={
0xA8,// 0x28 T/R Channel index
0x03,// Crystal Frequency and RF Power
0x78,// Data Function Control
0x87,// RSSI Function Control
0x20,// RSSI Value
0x0F,// Data format control
0x30,// Multi Burst Packet Repeat Control
0x21,// Power Ramp Control
0x03,// Addres Length
0x02,// Destination Addres 0x34
0x02,// Destination Addres 0x22
0x02,// Destination Addres 0x55
0x00,// Destination Addres
0x00,// Destination Addres
0x01,// Device Addres
0x01,// Device Addres
0x01,// Device Addres
0x00,// Device Addres
0x00,// Device Addres
0x00,// Reserved
0x00,// PLL Pre-Turn-On Time
0xB4,// PLL Lock Time
0x00,// Reserved
0x22,// Option
0x04 // RX Turn On Time
} ;


void spi_access_mode(void)
{
DAT=1;
PSB=1;
EN=1;
RDY=0;
SCK=0;
#asm("nop")
};

void active_mode(void)
{
DAT=1;
PSB=1;
EN=0;
SCK=0;
RDY=1;
#asm("nop")

};

// Output eight-bit value using selected bit-bang pins
void spi_bitbang_out(char value)
{
char x;
for(x=8;x>0;x--){
if(value & 0x80)DAT=1;
else DAT=0;
#asm("nop")
SCK=1;
value<<=1;
#asm("nop")
SCK=0;
#asm("nop")
}
} ;

// Input eight-bit value using selected bit-bang pins
char spi_bitbang_in()
{
unsigned char x=0;
unsigned char y;
x=0;
for(y=8;y>0;y--){
SCK=1;
#asm("nop")
x<<=1;
if(INDAT==1){x|=0b00000001;}
SCK=0;
#asm("nop")

} // Store next bit
return(x);
}

void spi_write_regs(unsigned char addres,unsigned char data)
{
spi_access_mode();
DAT_DDR=1;
spi_bitbang_out(addres|0x80); // Send address
spi_bitbang_out(data); // Send data
EN=0;
} ;

unsigned char spi_read_reg(unsigned char addres)
{ unsigned char data;
spi_access_mode();
DAT_DDR=1;
spi_bitbang_out(addres); // Send address
DAT_DDR=0;
data=spi_bitbang_in(); //read data
EN=0;
return(data);
};


void tr24f_init(void)
{unsigned char y;
for(y=0;y<24;y++)
spi_write_regs(y,regs[y]);
};

unsigned char *fifo_read(unsigned char data_length)
{unsigned char *data, y;
active_mode();
DAT_DDR=0;
for(y=data_length;y>0;y--)
data[y]=spi_bitbang_in();
return(data);
};

void fifo_write(unsigned char *data,unsigned char data_length)
{
unsigned char y;
active_mode();
DAT_DDR=1;
delay_us(20);
spi_bitbang_out(regs[0x09]);
spi_bitbang_out(regs[0x0A]);
spi_bitbang_out(regs[0x0B]);
for(y=data_length;y>0;y--)
spi_bitbang_out(data[y]);
spi_bitbang_out(1);
spi_bitbang_out(1);
spi_bitbang_out(1);
RDY=0;
};


Rambler\'s Top100 Mail.ru counter