Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////// Bez timera ////////////////////////////////////
- /* Includes */
- #include <stddef.h>
- #include "stm32f10x.h"
- #include "stm32f10x_gpio.h"
- #include "stm32f10x_rcc.h"
- void pauza(uint32_t vrijeme) { //integer 32 bita (slicno kao unsigned int)
- uint32_t counter;
- counter = vrijeme;
- while(counter > 0) counter--;
- }
- int main(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure; //struktura za iznicijalizaciju određenog porta tipa GPIO
- /* Omoguci signal takta na GPIOC (na svih 16-bita) */
- //potrebno ukljucit #include "stm32f10x_rcc.h"
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //prvi parametar koji modul drugi sta zelimo omoguciti
- /* Inicijaliziraj port/bit PC13 kao izlazni */
- GPIO_StructInit(&GPIO_InitStructure); //pozivanje funkcije GPIO strukture, postavlja na neke defaultne vrijednosti
- // Mijenjamo defaultne vrijednosti u zeljene
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //o kojemu pinu se radi
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //push pull (s otpornikom gore)
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //brzina
- //Moramo navesti da se radi o C portu (GPIOC)
- GPIO_Init(GPIOC, &GPIO_InitStructure); //pozivamo funkciju koja inicijalizira vrijednosti strukture na port C
- // inicijalizacija zavrsena //
- while(1)
- {
- GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET); //koji port, koji pin, 0/bit_reset (slika s otpornikom), Palim
- pauza(500000);
- GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET); //gasim
- pauza(500000);
- }
- }
- //////////////////////////// S timerom ////////////////////////////////
- /* Includes */
- #include <stddef.h>
- #include "stm32f10x.h"
- #include "stm32f10x_gpio.h"
- #include "stm32f10x_rcc.h"
- volatile uint32_t MsCounter; //varijabla se svaki puta ucitava
- void pauza(uint32_t vrijeme) { //integer 32 bita (slicno kao unsigned int)
- MsCounter = vrijeme;
- while(MsCounter > 0) { }
- }
- int main(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure; //struktura za iznicijalizaciju određenog porta tipa GPIO
- /* Omoguci signal takta na GPIOC (na svih 16-bita) */
- //potrebno ukljucit #include "stm32f10x_rcc.h"
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //prvi parametar koji modul drugi sta zelimo omoguciti
- /* Inicijaliziraj port/bit PC13 kao izlazni */
- GPIO_StructInit(&GPIO_InitStructure); //pozivanje funkcije GPIO strukture, postavlja na neke defaultne vrijednosti
- // Mijenjamo defaultne vrijednosti u zeljene
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //o kojemu pinu se radi
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //push pull (s otpornikom gore)
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //brzina
- //Moramo navesti da se radi o C portu (GPIOC)
- GPIO_Init(GPIOC, &GPIO_InitStructure); //pozivamo funkciju koja inicijalizira vrijednosti strukture na port C
- // inicijalizacija zavrsena //
- /* Inicijalizacija sistemskog timera (SysTick) */
- SysTick_Config(SystemCoreClock/1000); //ima jedan parametar (vrijeme jednog ticka), broji koji kaze koliko taktova treba za jednu sekundu, dijelimo s 1000 da dobijemo ms
- //1 tick = 1ms
- while(1)
- {
- GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET); //koji port, koji pin, 0/bit_reset (slika s otpornikom), Palim
- pauza(500);
- GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET); //gasim
- pauza(500);
- }
- }
- //otvoriti dat stm32F1xx_it.c te u prozoru outline pritisnuti SysTick_Handler(void)
- //interupt
- extern volatile uint32_t MsCounter; //nemoj definirati ovdje nego ju koristi iz drugog modula (ne nelazi se def u ovoj datoteci vec se nalazi u nekoj drugoj u istom projektu)
- void SysTick_Handler(void) //izvrsava se svake ms jer smo u glavnom programu tako namjestili
- {
- if(MsCounter > 0) MsCounter--;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement