Witam,
Wykorzystuję ATmege32(kwac 16MHz) i HM-T868S jako nadajnik do przesyłu sygnału do HM-R868S jako odbiornika i ATmegi16(kwac 16MHz).
Po odebraniu nadanych informacji na początek chcę zapalić diode.
Podłączyłem nadajnik do ATmegi32 kabelkami(długość 25cm każdy)
kod:
Odbiornik podłączyłem kabelkami do ATmegi16
Funkcje put i get:
Gdy podłączyłem bezpośrednio procesory, dioda się zapaliła. Gdy użyłem modułów, dioda nie chciała się zapalić!!
Co może być tego powodem??
Wykorzystuję ATmege32(kwac 16MHz) i HM-T868S jako nadajnik do przesyłu sygnału do HM-R868S jako odbiornika i ATmegi16(kwac 16MHz).
Po odebraniu nadanych informacji na początek chcę zapalić diode.
Podłączyłem nadajnik do ATmegi32 kabelkami(długość 25cm każdy)
kod:
#include <avr\io.h>
#include <stdio.h>
#include <inttypes.h>
#include <util/delay.h>
#include "rs.h"
#include "harddef.h"
int main(void)
{
///////////////////////////////////////////////
// Inicjacja portu szeregowego
RS_SET_BAUD(DEF_BAUD); // BAUND = 4800
UCSRC = 1<<URSEL | 1<<UCSZ1 | 1<<UCSZ0;
UCSRB = 1<<RXEN | 1<<TXEN;
UCSRA = 0;
// Koniec inicjacji
///////////////////////////////////////////////
while(1)
{
rs_put('B');
}
}
Odbiornik podłączyłem kabelkami do ATmegi16
#include <avr\io.h>
#include <stdio.h>
#include <inttypes.h>
#include "rs.h"
#include "harddef.h"
int main(void)
{
DDRA = 0xff;
PORTA = 0x00;
///////////////////////////////////////////////
// Inicjacja portu szeregowego
RS_SET_BAUD(DEF_BAUD); BAUND = 4800
UCSRC = 1<<URSEL | 1<<UCSZ1 | 1<<UCSZ0;
UCSRB = 1<<RXEN | 1<<TXEN;
UCSRA = 0;
// Koniec inicjacji
///////////////////////////////////////////////
_delay_ms(200);
PORTA = 0x04; // stan wysoki => stan aktywny odbiornika
_delay_ms(200);
while(1)
{
if(rs_get() == 'B')
{
PORTA |= 0x02;
}
}
}
Funkcje put i get:
int rs_put(char znak)
{
// Oczekiwanie aż bufor nadajnika jest pusty
while(!(1<<UDRE & UCSRA)) {}
UDR = znak;
return 0;
}
int rs_get(void)
{
char znak;
// Oczekiwanie na pojawienie się danej
while(!(1<<RXC & UCSRA)) {}
znak = UDR;
return znak;
}
Gdy podłączyłem bezpośrednio procesory, dioda się zapaliła. Gdy użyłem modułów, dioda nie chciała się zapalić!!
Co może być tego powodem??