IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Commit Details
Date: | 2011-06-21 04:11:09 (12 years 9 months ago) |
---|---|
Author: | Werner Almesberger |
Commit: | f7b9a18917b8ed913f33bda55a33a87cf419c352 |
Message: | atusb/fw/: new request ATUSB_GPIO_CLEANUP to re-enable INT0 - board.h (gpio_cleanup), board_app.c (gpio_cleanup): restore INT0 when done manipulating GPIOs - board.c (gpio): updated comment explaining how to restore INT0 - include/atusb/ep0.h (enum atspi_requests), ep0.c (ATUSB_GPIO_CLEANUP): new request to return to normal operation after ATUSB_GPIO |
Files: |
atusb/fw/board.h (1 diff) atusb/fw/board_app.c (2 diffs) atusb/fw/ep0.c (1 diff) atusb/fw/include/atusb/ep0.h (2 diffs) |
Change Details
atusb/fw/board.h | ||
---|---|---|
81 | 81 | void timer_init(void); |
82 | 82 | |
83 | 83 | int gpio(uint8_t port, uint8_t data, uint8_t dir, uint8_t mask, uint8_t *res); |
84 | void gpio_cleanup(void); | |
84 | 85 | |
85 | 86 | void board_init(void); |
86 | 87 | void board_app_init(void); |
atusb/fw/board_app.c | ||
---|---|---|
93 | 93 | |
94 | 94 | int gpio(uint8_t port, uint8_t data, uint8_t dir, uint8_t mask, uint8_t *res) |
95 | 95 | { |
96 | EIMSK = 0; /* must reset to recover INT_RF */ | |
96 | EIMSK = 0; /* recover INT_RF to ATUSB_GPIO_CLEANUP or an MCU reset */ | |
97 | 97 | |
98 | 98 | switch (port) { |
99 | 99 | case 1: |
... | ... | |
138 | 138 | } |
139 | 139 | |
140 | 140 | |
141 | void gpio_cleanup(void) | |
142 | { | |
143 | EIMSK = 1 << 0; | |
144 | } | |
145 | ||
146 | ||
141 | 147 | ISR(INT0_vect) |
142 | 148 | { |
143 | 149 | static uint8_t irq; |
atusb/fw/ep0.c | ||
---|---|---|
125 | 125 | return 0; |
126 | 126 | usb_send(&eps[0], buf, 3, NULL, NULL); |
127 | 127 | return 1; |
128 | case ATUSB_TO_DEV(ATUSB_GPIO_CLEANUP): | |
129 | gpio_cleanup(); | |
130 | return 1; | |
128 | 131 | |
129 | 132 | case ATUSB_TO_DEV(ATUSB_SLP_TR): |
130 | 133 | debug("ATUSB_SLP_TR\n"); |
atusb/fw/include/atusb/ep0.h | ||
---|---|---|
27 | 27 | * ->host ATUSB_TIMER - - #bytes (6) |
28 | 28 | * ->host ATUSB_GPIO dir+data mask+p# 3 |
29 | 29 | * host-> ATUSB_SLP_TR - - 0 |
30 | * host-> ATUSB_GPIO_CLEANUP - - 0 | |
30 | 31 | * |
31 | 32 | * host-> ATUSB_REG_WRITE value addr 0 |
32 | 33 | * ->host ATUSB_REG_READ - addr 1 |
... | ... | |
80 | 81 | ATUSB_TIMER, |
81 | 82 | ATUSB_GPIO, |
82 | 83 | ATUSB_SLP_TR, |
84 | ATUSB_GPIO_CLEANUP, | |
83 | 85 | ATUSB_REG_WRITE = 0x20, /* transceiver group */ |
84 | 86 | ATUSB_REG_READ, |
85 | 87 | ATUSB_BUF_WRITE, |