[cc110x_ng]
* fuxed transceiver driver for chronos * some more stuff
This commit is contained in:
parent
cf3b704bc5
commit
31f6c17606
@ -8,9 +8,9 @@
|
||||
#include <cc430_.h>
|
||||
#include <msp430/rf1a.h>
|
||||
|
||||
#define CC1100_GDO0 IOCFG0
|
||||
#define CC1100_GDO1 IOCFG1
|
||||
#define CC1100_GDO2 IOCFG2
|
||||
#define CC1100_GDO0 (RF1AIN & BIT0)
|
||||
#define CC1100_GDO1 (RF1AIN & BIT1)
|
||||
#define CC1100_GDO2 (RF1AIN & BIT2)
|
||||
|
||||
int cc1100_get_gdo0(void) {
|
||||
return CC1100_GDO0;
|
||||
@ -37,41 +37,44 @@ void cc1100_after_send(void)
|
||||
}
|
||||
|
||||
void cc1100_gdo0_enable(void) {
|
||||
RF1AIFG &= ~RF1AIV_RFIFG0;
|
||||
RF1AIE |= RF1AIV_RFIFG0;
|
||||
RF1AIFG &= ~BIT0;
|
||||
RF1AIE |= BIT0;
|
||||
}
|
||||
|
||||
void cc1100_gdo0_disable(void) {
|
||||
RF1AIE &= ~RF1AIV_RFIFG0;
|
||||
RF1AIFG &= ~RF1AIV_RFIFG0;
|
||||
RF1AIE &= ~BIT0;
|
||||
RF1AIFG &= ~BIT0;
|
||||
}
|
||||
|
||||
void cc1100_gdo2_disable(void) {
|
||||
RF1AIFG &= ~RF1AIV_RFIFG2;
|
||||
RF1AIE &= ~RF1AIV_RFIFG2;
|
||||
RF1AIFG &= ~BIT2; // Clear a pending interrupt
|
||||
RF1AIE &= ~BIT2; // Disable the interrupt
|
||||
}
|
||||
|
||||
void cc1100_gdo2_enable(void) {
|
||||
RF1AIE &= ~RF1AIV_RFIFG2;
|
||||
RF1AIFG |= RF1AIV_RFIFG2;
|
||||
RF1AIFG &= ~BIT2; // Clear a pending interrupt
|
||||
RF1AIE |= BIT2; // Enable the interrupt
|
||||
}
|
||||
|
||||
void cc1100_init_interrupts(void) {
|
||||
uint8_t state = disableIRQ(); /* Disable all interrupts */
|
||||
cc1100_gdo2_enable();
|
||||
cc1100_gdo0_disable();
|
||||
restoreIRQ(state); /* Enable all interrupts */
|
||||
}
|
||||
|
||||
interrupt (CC1101_VECTOR) __attribute__ ((naked)) cc1100_isr(void){
|
||||
__enter_isr();
|
||||
/* Check IFG */
|
||||
if (RF1AIFG & RF1AIV_RFIFG2) {
|
||||
RF1AIFG &= ~RF1AIV_RFIFG2;
|
||||
if (RF1AIV == RF1AIV_RFIFG2) {
|
||||
while (RF1AIN & BIT2);
|
||||
/* discard all further interrupts */
|
||||
RF1AIV = 0;
|
||||
cc1100_gdo2_irq();
|
||||
}
|
||||
if (RF1AIFG & RF1AIV_RFIFG0) {
|
||||
RF1AIFG &= ~RF1AIV_RFIFG0;
|
||||
RF1AIE &= ~RF1AIV_RFIFG0;
|
||||
if (RF1AIV == RF1AIV_RFIFG0) {
|
||||
cc1100_gdo0_irq();
|
||||
RF1AIE &= ~BIT0;
|
||||
}
|
||||
__exit_isr();
|
||||
}
|
||||
|
||||
@ -128,8 +128,7 @@ void cc1100_spi_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cc1100_txrx(uint8_t c) {
|
||||
uint8_t cc1100_txrx(uint8_t c) {
|
||||
uint8_t result;
|
||||
SSP0DR = c;
|
||||
#ifdef DEBUG
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user