Toto je starší verze dokumentu!
Cvičení 1 - Tlačítko (řešení 1)
Cvičení 1 - Tlačítko (řešení 2)
Následující kódy sem dávám, protože sám jsem hardwarem nepoznamenanej a doma se s tím peru, takže vím jaké to je a doufám, že to někomu pomůže Jenom bych rád, kdyby kódy sloužily spíše jako inspirace, než jako hotové zadání…
Alternativní způsob zobrazení:
#define LED_D GPIO_Pin_7 // 74HC595 Data pin #define LED_C GPIO_Pin_5 // 74HC595 Clock pin #define LED_W GPIO_Pin_6 // 74HC595 Write pin // Data to display on LED 7-seg const uint8_t LED_data[] = { 0x6f, //01101111 0 0x28, //00101000 1 0x5d, //01011101 2 0x7c, //01111100 3 0x3a, //00111010 4 0x76, //01110110 5 0x77, //01110111 6 0x2c, //00101100 7 0x7f, //01111111 8 0x7e, //01111110 9 0x00, //00000000 space 0x17, //00010111 F 0x80, //10000000 . 0x67, //01100111 G 0x53, //01010011 t 0x47, //01000111 C }; main { ... /* Initialize 74HC595 pins Out Push-Pull */ GPIO_InitStructure.GPIO_Pin = LED_D|LED_C|LED_W; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_ResetBits(GPIOA, LED_D|LED_C|LED_W); ... LED_write(LED_data[8]); ... } void LED_write(uint8_t disp){ uint8_t i; //bit banging for(i=0; i<8; i++) { if ( disp & 0x80) GPIO_ResetBits(GPIOA, LED_D); else GPIO_SetBits(GPIOA, LED_D); disp = disp <<1; GPIO_SetBits(GPIOA, LED_C); GPIO_ResetBits(GPIOA, LED_C); } GPIO_SetBits(GPIOA, LED_W); GPIO_ResetBits(GPIOA, LED_W); }