Witam,
mam taki problem muszę komunikować atmege16 z atmegą 128 (obie L) przez uart i uklad sn75176(Rs 485) . Do układu mam także dołączony terminal przez (max232). Program ma działać tak: mega16 odbiera z terminala i wysyła dalej do 128 ta odbiera daną wysyła z powrotem do 16. Problem polega na tym , że jak w obu megach mam ustawiony port, na którym jest podpięty sn75176 (w 16 - portd.6 w 128 portb.6) jako wyjściowy to program nie działa jeśli w jednej z nich ustawię go jako wejściowy to program działa....
soft do 16 (kawałek):
kod megi 128:
może ktoś ma jakieś pomysły??
ps) dodam, że płytka była sprawdzana i wygląda, że jest ok
pozdrawiam
mam taki problem muszę komunikować atmege16 z atmegą 128 (obie L) przez uart i uklad sn75176(Rs 485) . Do układu mam także dołączony terminal przez (max232). Program ma działać tak: mega16 odbiera z terminala i wysyła dalej do 128 ta odbiera daną wysyła z powrotem do 16. Problem polega na tym , że jak w obu megach mam ustawiony port, na którym jest podpięty sn75176 (w 16 - portd.6 w 128 portb.6) jako wyjściowy to program nie działa jeśli w jednej z nich ustawię go jako wejściowy to program działa....
soft do 16 (kawałek):
DDRD=0x42; //jak zmienie na 0x02 to dziala z terminalem w tej formie
//nie dziala w o gole
PORTD=0x83;
while (1)
{
UCSRB=0x10;
PORTD.6=0; //tutaj podpiety jest sn75176
while(!(UCSRA &(1<<7)));
x=UDR;
UCSRB=0x08;
PORTD.6=1;
while(!(UCSRA &(1<<5)));
UDR=x;
}
kod megi 128:
DDRE=0x42;
PORTE=0x03;
DDRB=0x42;
PORTB=0x83;
while (1)
{
UCSR0B=0x08;
PORTB.6=1;
while(!(UCSR0A & (1<<5))) ;
UDR0=x;
UCSR0B=0x10;
PORTB.6=0;
while(!(UCSR0A & (1<<7))) ;
x=UDR0;
PORTA=x;
}może ktoś ma jakieś pomysły??
ps) dodam, że płytka była sprawdzana i wygląda, że jest ok
pozdrawiam