Вот куски кода но посмотреть ваш ответ смогу только завтра нужно убегать ))
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено des00 12 декабря 2003 г. 14:31
В ответ на: Нужно текст в теги <pre> и </pre> заключить. Тогда получиться примерно так отправлено Bill 12 декабря 2003 г. 14:14


главный файл

//#include "manch.c" //- строка которую включаешь не работает выдает ошибку
Error[e27]: Entry "M_Transfer" in module manchester ( C:\work_des\manchester\Debug\Obj\manchester.r90 ) redefined in module manch ( C:\work_des\manchester\Debug\Obj\manch.r90 )

void initial_m(void);
void M_Transfer(unsigned char ch_addr,unsigned char data);

//---------------------------------------------------
// Main programm //
//---------------------------------------------------

void main (void)
{
initial_m();
for (;;)
{
M_Transfer(0x1F, 0xAA);
Tdiv2_delay_m(3);

}
}
файл manc.c

#include
#include

//используемые порты
#define m_port PORTA
#define m_ddr DDRA
//для положительной логики
#define Set0 0x20 //5 bit //маска по и
#define Set1 0x40 //6 bit //маска по или

extern void initial_m(void);
extern void M_Transfer(unsigned char ch_addr,unsigned char data);

void initial_m(void)
{
__disable_interrupt();

m_port |= Set0 | Set1;
m_ddr |= Set0 | Set1;
}
void M_Transfer(unsigned char ch_addr,unsigned char data)
{
unsigned int databyte = 0x00;
unsigned char i = 0x11;
unsigned char parity = 0x00;

databyte = ((unsigned int)ch_addr<<0x0B) | data;

__enable_interrupt();

m_port= m_port & (~(Set0 | Set1)) | Set0;

m_port = m_port & (~(Set0 | Set1)) | Set1;

while (i > 0)
{
if ( databyte & Bit_16 )
{
m_port = m_port & (~(Set0 | Set1)) | Set1;
parity++;
}
else
{
m_port = m_port & (~(Set0 | Set1)) | Set0;
}

if ( !(databyte & Bit_16) )
{
m_port = m_port & (~(Set0 | Set1)) | Set1;
}
else
{
m_port = m_port & (~(Set0 | Set1)) | Set0;
}
databyte <<= 1;
if (--i == 1)
{
if (parity & parity_style)
{
databyte &= ~Bit_16;
}
else databyte |= Bit_16;
}
}

m_port |= Set0 | Set1;

__disable_interrupt();
return;
}


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru