From 594e98673d7afb5958f665c1a4d8bcc765c7af6a Mon Sep 17 00:00:00 2001 From: localhorst Date: Sat, 5 Dec 2020 21:50:44 +0100 Subject: [PATCH] stop player with INT0 Btn --- Main.c | 43 +++++++++++- RTE/_MCB1760_mit_LPC1768/RTE_Components.h | 59 ++++++++--------- Welcome.h | 1 + Welcome.uvguix.windoofs | 80 +++++++++++++++++++---- Welcome.uvprojx | 5 +- audio.c | 2 +- 6 files changed, 139 insertions(+), 51 deletions(-) diff --git a/Main.c b/Main.c index e361bfa..a8b2c6e 100644 --- a/Main.c +++ b/Main.c @@ -44,6 +44,7 @@ uint32_t au32QrCode[25] = static void vMainInitApp(void); static void vPrintQr(void); +static bool bCheckButton(void); /** * @fn int main (void) @@ -58,10 +59,14 @@ int main (void) vMainInitApp(); //init app vPrintQr(); //print Qr vStartAudio(); + LED_On(0); - while(1) { - vUpdateLyrics(); + while(!bCheckButton()) { + vUpdateLyrics(); } + + LED_Off(0); + LPC_TIM0->TCR = 0; // stop music } /** @@ -87,6 +92,8 @@ static void vMainInitApp(void) // Init LED LED_Initialize(); + + Buttons_Initialize(); } /** @@ -118,4 +125,36 @@ static void vPrintQr(void) { } } +static bool bCheckButton(void) +{ + static bool lastState; + const bool btnState = Buttons_GetState(); + static uint16_t u16Debunce; + + + if(u16Debunce < 1000U) + { + u16Debunce++; + } + + if (btnState) //btn pressed + { + if(lastState && (u16Debunce >= 300U)) + { + lastState = false; + u16Debunce = 0; + return false; + } + + if((!lastState) && (u16Debunce == 1000U)) + { + lastState = true; + u16Debunce = 0; + return true; + } + + } + return lastState; +} + diff --git a/RTE/_MCB1760_mit_LPC1768/RTE_Components.h b/RTE/_MCB1760_mit_LPC1768/RTE_Components.h index 77d94e1..cc7f6a8 100644 --- a/RTE/_MCB1760_mit_LPC1768/RTE_Components.h +++ b/RTE/_MCB1760_mit_LPC1768/RTE_Components.h @@ -1,32 +1,27 @@ - -/* - * Auto generated Run-Time-Environment Configuration File - * *** Do not modify ! *** - * - * Project: 'Welcome' - * Target: 'MCB1760 mit LPC1768' - */ - -#ifndef RTE_COMPONENTS_H -#define RTE_COMPONENTS_H - - -/* - * Define the Device Header File: - */ -#define CMSIS_device_header "LPC17xx.h" - -/* Keil::CMSIS Driver:I2C:2.4.0 */ -#define RTE_Drivers_I2C0 /* Driver I2C0 */ - #define RTE_Drivers_I2C1 /* Driver I2C1 */ - #define RTE_Drivers_I2C2 /* Driver I2C2 */ -/* Keil::CMSIS Driver:SPI:SPI:2.1.0 */ -#define RTE_Drivers_SPI2 /* Driver SPI2 */ -/* Keil::CMSIS Driver:SPI:SSP:2.7.0 */ -#define RTE_Drivers_SPI0 /* Driver SPI0 */ - #define RTE_Drivers_SPI1 /* Driver SPI1 */ -/* Keil::Device:Startup:1.0.0 */ -#define RTE_DEVICE_STARTUP_LPC17XX /* Device Startup for NXP17XX */ - - -#endif /* RTE_COMPONENTS_H */ + +/* + * Auto generated Run-Time-Environment Component Configuration File + * *** Do not modify ! *** + * + * Project: 'Welcome' + * Target: 'MCB1760 mit LPC1768' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "LPC17xx.h" + +#define RTE_DEVICE_STARTUP_LPC17XX /* Device Startup for NXP17XX */ +#define RTE_Drivers_I2C0 /* Driver I2C0 */ + #define RTE_Drivers_I2C1 /* Driver I2C1 */ + #define RTE_Drivers_I2C2 /* Driver I2C2 */ +#define RTE_Drivers_SPI0 /* Driver SPI0 */ + #define RTE_Drivers_SPI1 /* Driver SPI1 */ +#define RTE_Drivers_SPI2 /* Driver SPI2 */ + +#endif /* RTE_COMPONENTS_H */ diff --git a/Welcome.h b/Welcome.h index 1a3c21d..8ff74fa 100644 --- a/Welcome.h +++ b/Welcome.h @@ -16,6 +16,7 @@ This file includes other header files used in this project. #include "GLCD_Config.h" #include "Board_GLCD.h" #include "Board_LED.h" +#include "Board_Buttons.h" //------------------------------------------------------------------- // defines diff --git a/Welcome.uvguix.windoofs b/Welcome.uvguix.windoofs index 58c1b32..2093e04 100644 --- a/Welcome.uvguix.windoofs +++ b/Welcome.uvguix.windoofs @@ -11,17 +11,17 @@ 38003 Registers - 140 100 + 140 90 346 Code Coverage - 1010 656 + 1010 160 204 Performance Analyzer - 352 175 175 964 + 1170 @@ -30,7 +30,7 @@ 35141 Event Statistics - 250 50 874 + 200 50 700 1506 @@ -66,7 +66,7 @@ 466 Source Browser 500 - 166 + 300 @@ -106,8 +106,8 @@ 0 - 348 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000200000000000000010000003D433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C4D61696E2E6300000000064D61696E2E6300000000C5D4F200FFFFFFFF40433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C57656C636F6D652E68000000000957656C636F6D652E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000094020000 + 908 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000800000000000000010000003D433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C4D61696E2E6300000000064D61696E2E6300000000C5D4F200FFFFFFFF40433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C57656C636F6D652E68000000000957656C636F6D652E6800000000FFDC7800FFFFFFFF3E433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C617564696F2E630000000007617564696F2E6300000000BECEA100FFFFFFFF3F433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C6D656C6F64792E6300000000086D656C6F64792E6300000000F0A0A100FFFFFFFF3E433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C617564696F2E680000000007617564696F2E6800000000BCA8E100FFFFFFFF3F433A5C55736572735C77696E646F6F66735C4465736B746F705C456D6265646465645F4769745C4D4342313730305F57656C636F6D655C6D656C6F64792E6800000000086D656C6F64792E68000000009CC1B600FFFFFFFF40433A5C4B65696C5F76355C41524D5C5041434B5C4B65696C5C4D444B2D4D6964646C65776172655C372E362E305C426F6172645C426F6172645F474C43442E68000000000C426F6172645F474C43442E6800000000F7B88600FFFFFFFF53433A5C4B65696C5F76355C41524D5C5041434B5C4B65696C5C4C5043313730305F4446505C322E342E305C426F617264735C4B65696C5C4D4342313730305C436F6D6D6F6E5C474C43445F436F6E6669672E68000000000D474C43445F436F6E6669672E6800000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000094020000 @@ -1818,7 +1818,7 @@ Build 998 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000134D434231373630206D6974204C50433137363896000000000000000100134D434231373630206D6974204C504331373638000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000134D434231373630206D6974204C50433137363896000000000000000100134D434231373630206D6974204C504331373638000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1834,7 +1834,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3602,18 +3602,72 @@ 0 .\Main.c - 0 + 4 + 46 + 67 + 1 + 48,71,98,106 + 0 + + + .\Welcome.h + 22 1 - 12 + 18 1 0 - .\Welcome.h + .\audio.c + 4 + 26 + 150 + 1 + 33,110,125 + 0 + + + .\melody.c + 0 + 22 + 23 + 1 + + 0 + + + .\audio.h 0 1 - 13 + 1 + 1 + + 0 + + + .\melody.h + 0 + 1 + 1 + 1 + + 0 + + + C:\Keil_v5\ARM\PACK\Keil\MDK-Middleware\7.6.0\Board\Board_GLCD.h + 0 + 1 + 1 + 1 + + 0 + + + C:\Keil_v5\ARM\PACK\Keil\LPC1700_DFP\2.4.0\Boards\Keil\MCB1700\Common\GLCD_Config.h + 73 + 44 + 45 1 0 diff --git a/Welcome.uvprojx b/Welcome.uvprojx index e542e43..fe2b070 100644 --- a/Welcome.uvprojx +++ b/Welcome.uvprojx @@ -10,7 +10,7 @@ MCB1760 mit LPC1768 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC 0 @@ -185,7 +185,6 @@ 0 0 0 - 0 1 0 8 @@ -352,7 +351,7 @@ 0 0 0 - 4 + 0 diff --git a/audio.c b/audio.c index cf66a9a..5e5ec07 100644 --- a/audio.c +++ b/audio.c @@ -147,5 +147,5 @@ void vStartAudio() LPC_TIM0->MCR = 0x3; NVIC_SetPriority(TIMER0_IRQn, 1U); // priority NVIC_EnableIRQ(TIMER0_IRQn); - LPC_TIM0->TCR = 1; // start + LPC_TIM0->TCR = 1; // start music }