|
главный файл//#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