示例#1
0
文件: main.c 项目: Def152/STM32
int main()
{
	/* Enable clock for PORTC */ 
	
	RCC->APB2ENR = (RCC_APB2ENR_IOPCEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_ADC1EN);
	GpioConfig(GPIOC, GPIO_Pin_13, gpio_mode_output_PP_2MHz);
	//GpioConfig(GPIOC, GPIO_Pin_13, gpio_mode_output_PP_2MHz);
	GpioConfig(GPIOA, GPIO_Pin_0, gpio_mode_input_analog);
	/*Wake up ADC */ 
	ADC1->CR2 = ADC_CR2_ADON|ADC_CR2_JEXTTRIG|ADC_CR2_JEXTSEL_0|ADC_CR2_JEXTSEL_1|ADC_CR2_JEXTSEL_2;
	// select mode: JSWSTART to start conversion
	//JSWSTART to start conversion
	//ADC1->JSQR = ADC_JSQR_JSQ4_4
	for(delay = 100000; delay; delay--);
	/* Select channel 0 */ 
	//ADC1->SQR3 = 0;
	
	SysTick_Config(8000000*0.5);
	
		
while(1){
	GPIOC->BSRR = GPIO_BSRR_BS13; // stan wysoki
	for(delay = 1000000; delay; delay--){};
	GPIOC->BSRR = GPIO_BSRR_BR13; // stan niski
			/* Start conversion */ 
	//ADC1->CR2 = ADC_CR2_JSWSTART|ADC_CR2_SWSTART;
	//ADC1->CR2 = ADC_CR2_ADON;
			/* Wait for result */ 
//	while(!(ADC1->SR & ADC_SR_JEOC))
//		adc_read = ADC1->DR;
	for(delay = 1000000; delay; delay--){};
	}
}
示例#2
0
void JtagInitGpio ()
{
	js_printf("===== Initializing PS GPIO pins...\n\r");
	XGpioPs_Config *ptrConfigPtrPs = XGpioPs_LookupConfig(0);
	XGpioPs_CfgInitialize(&structXGpioPs,ptrConfigPtrPs,ptrConfigPtrPs->BaseAddr);

	/* Unlock the SLCR block */
	Xil_Out32 (0xF8000000 + 0x8, 0xDF0D);

	GpioConfig((GPIO_BASE_ADDR+(g_mio_jtag_tdi*4)),GPIO_MASK_VAL, GPIO_TDI_VAL);
    GpioConfig((GPIO_BASE_ADDR+(g_mio_jtag_tdo*4)),GPIO_MASK_VAL, GPIO_TDO_VAL);
    GpioConfig((GPIO_BASE_ADDR+(g_mio_jtag_tck*4)),GPIO_MASK_VAL, GPIO_TCK_VAL);
    GpioConfig((GPIO_BASE_ADDR+(g_mio_jtag_tms*4)),GPIO_MASK_VAL, GPIO_TMS_VAL);
    GpioConfig((GPIO_BASE_ADDR+(g_mio_jtag_mux_sel*4)),GPIO_MASK_VAL, GPIO_MUX_SEL_VAL);

	XGpioPs_SetDirectionPin(&structXGpioPs,MIO_TCK,1);
	XGpioPs_SetOutputEnablePin(&structXGpioPs,MIO_TCK,1);

	XGpioPs_SetDirectionPin(&structXGpioPs,MIO_TMS,1);
	XGpioPs_SetOutputEnablePin(&structXGpioPs,MIO_TMS,1);

	XGpioPs_SetDirectionPin(&structXGpioPs,MIO_TDI,1);
	XGpioPs_SetOutputEnablePin(&structXGpioPs,MIO_TDI,1);

	XGpioPs_SetDirectionPin(&structXGpioPs,MIO_MUX_SELECT,1);
	XGpioPs_SetOutputEnablePin(&structXGpioPs,MIO_MUX_SELECT,1);
	XGpioPs_WritePin(&structXGpioPs, MIO_MUX_SELECT, g_mux_sel_def_val);
	
	XGpioPs_SetDirectionPin(&structXGpioPs,MIO_TDO,0);
	XGpioPs_SetOutputEnablePin(&structXGpioPs,MIO_TDO,0);
} /* initGpio() */
示例#3
0
void InitRtc(void)
{
	GpioConfig(DS1302_RST_PIN, OUTPUT);
	GpioConfig(DS1302_SCLK_PIN, OUTPUT);
	RtcEnableWrite();
	RTC_STATUS nRtcStaus = CheckRtcStatus();
	if (RTC_STOPPED == nRtcStaus) {
		DiableCharge();
		StartRtcClock();
	}
}
示例#4
0
void InitFan(void)													//Initaling the fan
{
	GpioConfig(FAN_POWER_CONTROL_PIN,OUTPUT);
	GpioConfig(FAN_PWM_PIN,OUTPUT);
	
	//Seting the PWM Output for controling the motor
	nrf_pwm_config_t pwm_config = PWM_DEFAULT_CONFIG;						
	pwm_config.mode             = PWM_MODE_MTR_100;							// 0-100 resolution, 20 kHz PWM frequency, 4MHz timer frequency (prescaler 2)
  pwm_config.num_channels     = 1;														//Just one Channel
  pwm_config.gpio_num[0]      = FAN_PWM_PIN;
	nrf_pwm_init(&pwm_config); 																	// Initialize the PWM library
	
	OpenFan(60);														//60-duty-cycle  as default
}
示例#5
0
void MotorCfg(motor_t * motor,sctPinId sct_id,gpioNumber_t n){

	motor->pwm_pin.id = sct_id;
	motor->pwm_pin.duty_cycle = 0;

	motor->dir_pin.n = n;
	motor->dir_pin.dir = GPIO_OUT;
	motor->dir_pin.init_st = GPIO_LOW;

	SctConfig(&motor->pwm_pin); // Configures the SCTimer
	GpioConfig(&motor->dir_pin); // Configures the GPIO to control the directions
}
示例#6
0
static __INLINE void RtcWriteByte(uint8_t nByte)
{
	int i;
	GpioConfig(DS1302_IO_PIN, OUTPUT);
	for (i = 0; i < BYTE_BIT_COUNT; ++i) {
		RtcWriteClk(LOW);
		RtcShortDelay();
		RtcWriteIo(nByte & 0x01);
		nByte = nByte >> 1;
		RtcWriteClk(HIGH);
		RtcShortDelay();
	}
}
示例#7
0
void InitLed(void)
{
		if(HIGH_LEVEL_TO_LIGHT_LED)
		{
			on_stat 	= 1;
			off_stat 	= 0;
		}
		else
		{
			on_stat 	= 0;
			off_stat 	= 1;
		}
						
    GpioConfig(TEST_LED0,OUTPUT);
    GpioConfig(TEST_LED1,OUTPUT);
		GpioWrite(TEST_LED0,off_stat);
		GpioWrite(TEST_LED1,off_stat);
		
		InitWarnLed();
		CloseWarnLed();
			
		InitAQILed();
		CloseAQILed();
}
示例#8
0
static __INLINE uint8_t RtcReadByte(void)
{
	int i;
	GpioConfig(DS1302_IO_PIN, INPUT);
	uint8_t nByte = 0;
	for (i = 0; i < BYTE_BIT_COUNT; ++i) {
		nByte = nByte >> 1;
		RtcWriteClk(LOW);
		RtcShortDelay();
		if (UP == RtcReadIo())
			nByte += 0x80;
		RtcWriteClk(HIGH);
		RtcShortDelay();
	}
	return nByte;
}
示例#9
0
static __INLINE void InitWarnLed(void)   
{
		GpioConfig(WARN_LED_RED_PIN,OUTPUT);
		GpioConfig(WARN_LED_GREEN_PIN,OUTPUT);
}
示例#10
0
static __INLINE void InitAQILed(void)   
{
	  GpioConfig(AQI_LED_RED_PIN,OUTPUT);
		GpioConfig(AQI_LED_GREEN_PIN,OUTPUT);
		GpioConfig(AQI_LED_BLUE_PIN,OUTPUT);
}