В процессе изучения разработки на LauncPad мне очень понравилась возможность отладки кода на микроконтроллере. Пока что пробовал в Keil, но думаю, что в CCS по аналогии.
Ниже простой пример. Мигает зеленый светодиод, пока нажата кнопка SW1.
Вот, например, что получается, если поставить привычный брэкпоинт.
Ниже простой пример. Мигает зеленый светодиод, пока нажата кнопка SW1.
#include "../tm4c123gh6pm.h" void PortF_Init(void); void delay(unsigned long halfsecs); int main(void) { unsigned long SW1; // input from PF4 PortF_Init(); while (1) { GPIO_PORTF_DATA_R &= ~0x08; do { SW1 = GPIO_PORTF_DATA_R & 0x10; // PF4 into SW1 } while (SW1); do { // Invert green light GPIO_PORTF_DATA_R ^= 0x08; delay(1); SW1 = GPIO_PORTF_DATA_R & 0x10; // PF4 into SW1 } while (!SW1); } } // Init port F (PF4 - !in, PF3 - out) void PortF_Init(void) { volatile unsigned long delay; SYSCTL_RCGC2_R |= 0x00000020; // 1) F clock delay = SYSCTL_RCGC2_R; // delay GPIO_PORTF_CR_R |= 0x18; // allow changes to PF4-3 GPIO_PORTF_AMSEL_R &= ~0x18; // 3) disable analog function GPIO_PORTF_PCTL_R &= 0x00000000; // 4) GPIO clear bit PCTL GPIO_PORTF_DIR_R &= ~0x10; // 5.1) PF4 input, GPIO_PORTF_DIR_R |= 0x08; // 5.2) PF3 output GPIO_PORTF_AFSEL_R &= ~0x18; // 6) no alternate function GPIO_PORTF_PUR_R |= 0x10; // enable pullup resistors on PF4 GPIO_PORTF_DEN_R |= 0x18; // 7) enable digital pins PF4-PF3 } void delay(unsigned long time) { unsigned long i; while (time > 0) { i = 1234567; while(i > 0){ i = i - 1; } time = time - 1; } }
Вот, например, что получается, если поставить привычный брэкпоинт.
Комментариев нет:
Отправить комментарий