merhabalar
ben pic ile nrf24l01 modülü vasıtasıyla haberleşme uygulaması yapıyorum.
gelen veriyi almak için harici kesme kullanıyorum fakat kesme engelleniyor diyerek ccs c kesmeyi kapatıyor ve bunu hata olarak değil uyarı olarak veriyor. sonuç olarak uyarı da olsa harici kesme yi çalıştırmıyor. biraz araştırdım sorunun kesme içinde delay(); kullanımından olabileceği ni söylemişler genelde amam benim fonksiyonumda bir bekleme yok sadece ana fonksiyonum da var ama o da kesmeyi etkilemez diye düşünüyorum.hatayı ve hatanın verildiği kodu buraya atıyorum. yardımlarınızı bekliyorum teşekkür ederim.
bu da uyarıda yazan fonksiyonlar;
bu da ana fonksiyonda ki kod:
ben pic ile nrf24l01 modülü vasıtasıyla haberleşme uygulaması yapıyorum.
gelen veriyi almak için harici kesme kullanıyorum fakat kesme engelleniyor diyerek ccs c kesmeyi kapatıyor ve bunu hata olarak değil uyarı olarak veriyor. sonuç olarak uyarı da olsa harici kesme yi çalıştırmıyor. biraz araştırdım sorunun kesme içinde delay(); kullanımından olabileceği ni söylemişler genelde amam benim fonksiyonumda bir bekleme yok sadece ana fonksiyonum da var ama o da kesmeyi etkilemez diye düşünüyorum.hatayı ve hatanın verildiği kodu buraya atıyorum. yardımlarınızı bekliyorum teşekkür ederim.
bu da uyarıda yazan fonksiyonlar;
C:
/+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void nRF24L01_write(unsigned char d)
{
unsigned char s = 0;
for(s = 0; s < 8; s++)
{
if((d & 0x80) != 0)
{output_bit(MOSI_pin, nrf_HIGH);}
else
{output_bit(MOSI_pin, nrf_LOW);}
d <<= 1;
output_bit(SCK_pin, nrf_HIGH);
output_bit(SCK_pin, nrf_LOW);
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void register_write(unsigned char reg, unsigned char value)
{
output_bit(SS_pin, nrf_LOW);
nRF24L01_write((reg | W_REGISTER_cmd));
nRF24L01_write(value);
output_bit(SS_pin, nrf_HIGH);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bu da ana fonksiyonda ki kod:
C:
#INT_EXT
void EXT_isr(void)
{
register_write(CONFIG_reg,0x0F);
output_toggle(pin_d2);
receive_data(5,gelen);
flush_TX_RX();
//delay_ms(20);
}