Advertisement
tagartgames

Aksp_Lab.1

May 16th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.39 KB | None | 0 0
  1. /*#include "stm32f10x.h"
  2.  
  3. int main(void) {
  4.     int i; //zmienna do licznika
  5.    
  6.     RCC->APB2ENR = 0x00000008; //wlaczenie sygnalu zegarowego taktujacego dany uklad peryferyjny //APB2-magistrala do ktorej podlaczone sa LED
  7.     GPIOB->CRH   = 0x33333333; //konfiguracja portów IO
  8.    
  9.     //0x00000100 led1 //0x00000200 led2 //0x00000400 led3 //0x00000800 led4
  10.     //0x00001000 led5 //0x00002000 led6 //0x00004000 led7 //0x00008000 led8
  11.  
  12.     while(1) {
  13.         //0x00008000 led8
  14.         GPIOB->ODR = 0x00008000; //zapalanie diody
  15.         for(i = 1000000; i > 0; i--); //licznik
  16.         GPIOB->ODR = 0x00000000; //gaszenie diody
  17.         for(i = 1000000; i > 0; i--); //licznik
  18.     }
  19.     while(1) {
  20.         //na przemian diody parzyste i nieparzyste
  21.         GPIOB->ODR = 0x00000200 | 0x00000800 | 0x00002000 | 0x00008000; //zapalanie diod
  22.         for(i = 1000000; i > 0; i--); //licznik
  23.         GPIOB->ODR = 0x00000000; //gaszenie diod
  24.         GPIOB->ODR = 0x00000100 | 0x00000400 | 0x00001000 | 0x00004000; //zapalanie diod
  25.         for(i = 1000000; i > 0; i--); //licznik
  26.         GPIOB->ODR = 0x00000000; //gaszenie diod
  27.     }
  28.     while(1) {
  29.         //waz swietlny
  30.         GPIOB->ODR = 0x00000000 | 0x00000100; //gaszenie i zapalanie diody
  31.         for(i = 1000000; i > 0; i--); //licznik
  32.         GPIOB->ODR = 0x00000000 | 0x00000200; //gaszenie i zapalanie diody
  33.         for(i = 1000000; i > 0; i--); //licznik
  34.         GPIOB->ODR = 0x00000000 | 0x00000400; //gaszenie i zapalanie diody
  35.         for(i = 1000000; i > 0; i--); //licznik
  36.         GPIOB->ODR = 0x00000000 | 0x00000800; //gaszenie i zapalanie diody
  37.         for(i = 1000000; i > 0; i--); //licznik
  38.         GPIOB->ODR = 0x00000000 | 0x00001000; //gaszenie i zapalanie diody
  39.         for(i = 1000000; i > 0; i--); //licznik
  40.         GPIOB->ODR = 0x00000000 | 0x00002000; //gaszenie i zapalanie diody
  41.         for(i = 1000000; i > 0; i--); //licznik
  42.         GPIOB->ODR = 0x00000000 | 0x00004000; //gaszenie i zapalanie diody
  43.         for(i = 1000000; i > 0; i--); //licznik
  44.         GPIOB->ODR = 0x00000000 | 0x00008000; //gaszenie i zapalanie diody
  45.         for(i = 1000000; i > 0; i--); //licznik
  46.     }
  47.     while(1) {
  48.         for(int p=1; p<16;p++)
  49.         {
  50.             GPIOB->ODR = (255<<p);
  51.             for(i = 2000000;i>0; i--);
  52.         }
  53.     }
  54. }*/
  55.  
  56. /*#include "stm32f10x.h"
  57. #include "stm32f10x_rcc.h"
  58. #include "stm32f10x_gpio.h"
  59.  
  60.  
  61. int main(void) {
  62.     int i; //zmienna do licznika
  63.    
  64.     //RCC->APB2ENR = 0x00000008; //wlaczenie sygnalu zegarowego taktujacego dany uklad peryferyjny //APB2-magistrala do ktorej podlaczone sa LED
  65.     //GPIOB->CRH   = 0x33333333; //konfiguracja portów IO
  66.    
  67.     //port B - diody LED
  68.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//wlacz taktowanie portu GPIO B
  69.     GPIO_InitTypeDef  tmp;
  70.     tmp.GPIO_Mode=GPIO_Mode_Out_PP;
  71.     tmp.GPIO_Speed=GPIO_Speed_2MHz;
  72.     tmp.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;//tmp.GPIO_Pin=GPIO_Pin_All;
  73.     GPIO_Init(GPIOB, &tmp);
  74.    
  75.     //port A - Przyciski
  76.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//wlacz taktowanie portu GPIO A
  77.   tmp.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
  78.   tmp.GPIO_Speed = GPIO_Speed_50MHz;
  79.   tmp.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  80.   GPIO_Init(GPIOA, &tmp);
  81.  
  82.     while(1) {
  83.         GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_SET); //zapalanie diody
  84.         for(i = 1000000; i > 0; i--); //licznik
  85.         GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_RESET); //gaszenie diody
  86.         for(i = 1000000; i > 0; i--); //licznik
  87.     }
  88.     while(1) {
  89.         GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_SET); //zapalanie diody
  90.         for(i = 1000000; i > 0; i--); //licznik
  91.         GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_RESET); //gaszenie diody
  92.         for(i = 1000000; i > 0; i--); //licznik
  93.        
  94.         if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)){
  95.       GPIO_ResetBits(GPIOB, GPIO_Pin_8);
  96.     } else {
  97.       GPIO_SetBits(GPIOB, GPIO_Pin_8);
  98.     }
  99.     if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)){
  100.       GPIO_ResetBits(GPIOB, GPIO_Pin_9);
  101.     } else {
  102.       GPIO_SetBits(GPIOB, GPIO_Pin_9);
  103.     }
  104.     if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)){
  105.       GPIO_ResetBits(GPIOB, GPIO_Pin_10);
  106.     } else {
  107.       GPIO_SetBits(GPIOB, GPIO_Pin_10);
  108.     }
  109.     if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)){
  110.       GPIO_ResetBits(GPIOB, GPIO_Pin_11);
  111.     } else {
  112.       GPIO_SetBits(GPIOB, GPIO_Pin_11);
  113.     }
  114.     }
  115.     while(1) { //zmien na przeciwny -> czekaj
  116.         GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_SET);
  117.         for(i = 1000000; i > 0; i--); //licznik
  118.         //if (GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_15)==1){
  119.       GPIOB->ODR ^= GPIO_Pin_15;
  120.         for(i = 1000000; i > 0; i--); //licznik
  121.     //}
  122.     }
  123. }//Lab1.2 */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement