Więc JarekK wysłał mi na PW link do gotowych bibliotek na forum, ale dla ATmegi32, nie 328P. Zasugerował od razu potrzebne zmiany:
JarekK napisał(a):
Może warto spróbować gotową bibliotekę z tego forum kolegi Nefarious19.
topic11377.htmlJedyny kłopot to przeportowanie z atmegi 32 na atmege 328p.
******************************************************
Jeśli nic nie pomyliłem to wystarczy:
w pliku nRF24L01.c poprawić:
void Initialize_INTERRUPT_For_nRF(void)
{
//JKA dla ATmega32: GICR |= (1<<INT2); //enable INT2 intterupt source in GICR register
//JKA zmieniamy na przerwanie INT0 w atmega328p bo INT2 zwyczajnie nie maa
EIMSK |= (1<<INT0); //enable INT0 intterupt source in EIMSK register
//JKA dla ATmega32: MCUCSR |= (0<<ISC2); //set intterupt active on falling edge
EICRA |= (1<<ISC01); //The falling edge of INT0 generates an interrupt request.
}
//'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
// Here is external intterupt handler, if you are using interupts change the name of the vector interrupt ore live the same if you are using the same
//...................................................................................................................................................
ISR(INT0_vect) //JKA wazne ma byc w tym przypadku INT0
w pliku nRF24L01.h poprawić:
//JKA dla Atmegi 32: #define IRQ PB2 //IRQ PIN
#define IRQ PD2 //IRQ PIN JKA dla Atmega328p -> INT0
Powodzenia bo sam nie mam nRF24L01 by to sprawdzić.
Co też zrobiłem. Niestety, linku do wątku z bibliotekami nie wolno mi zamieścić, jako nowemu użytkownikowi.
Osobny program, który powinien wypisać rejestr STATUS na konsolę wygląda tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I na konsoli pojawia się:
![Obrazek](https://obrazkiforum.atnel.pl/thumb/20553/f7e559ee2b730564ab3320f6aaae877e.jpg)
Przypomnę, że skoro STATUS wynosi 0x0E to spodziewałbym się na konsoli linii typu "Test it! x=155, y=14".
Twórca bibliotek sugerował podłączenie zasilania nRFa przez tranzystor, jutro za dnia pewnie tego spróbuję. Byłbym też super wdzięczny, jeśli ktoś dałby radę potwierdzić, że ten program powinien działać.