[SOLVED] line follower robot using stm 32 in keil u version with explanation

Status
Not open for further replies.

Noor Us Sabah

Newbie level 4
Joined
Jun 15, 2014
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
16
plzzzzz help me to find this code .....submissin date on this tuesday ,.....plzzz kindly
 

just google and get the idea and ask the question rather than full project.
 

Its nt found anywhere......

- - - Updated - - -

bt this code is not working point out mistake in it
Code:
#define  RCC_APB2ENR	( * ((volatile unsigned long*) 0x40021018))
#define GPIOA_CRL		( * ((volatile unsigned long*) 0x40010800))
#define GPIOA_CRH		( * ((volatile unsigned long*) 0x40010804))
#define GPIOA_ODR		( * ((volatile unsigned long*) 0x4001080C))
#define GPIOB_CRL		( * ((volatile unsigned long*) 0x40010C00))
#define GPIOB_CRH		( * ((volatile unsigned long*) 0x40010C04))
#define GPIOB_ODR		( * ((volatile unsigned long*) 0x40010C0C))
#define GPIOC_CRL		( * ((volatile unsigned long*) 0x40011000))
#define GPIOC_CRH		( * ((volatile unsigned long*) 0x40011004))
#define GPIOC_ODR		( * ((volatile unsigned long*) 0x4001100C))


void Delay(void)
	{
	volatile unsigned int i;
	for (i = 0;  i < 325000; i++)  //DELAY OF 1 SECOND
		{
		
		}

	}

void SystemInit(void)
	{
	}

int main(void)
	{
	RCC_APB2ENR |= 0x00000018; 
    volatile unsigned short k;
	GPIOC_CRH &=0x11111111;
	GPIOC_CRL &=0x11111111;
	GPIOA_CRH &=0x11111111;
	GPIOB_CRH &=0x11111111;
	volatile unsigned int A =0x0000;	
	volatile unsigned int B =0x8000;	
	volatile unsigned int C =0x2000;	
	volatile unsigned int D =0x0800;    
	volatile unsigned int E =0x0200;	
	volatile unsigned int F =0x0080;	
	volatile unsigned int G =0x0020;	
	volatile unsigned int H =0x0008;	
	volatile unsigned int I =0x0002;	
	



	 while(1)
	  {
		
		 for(k=1;k<17;k++)
		  {
			Delay();
			Delay();

			if(k>=1 && k<=4)
			 {
			  GPIOA_ODR =A;
			  GPIOB_ODR =A;
			 
			 if(k==1)
			   {
				GPIOC_ODR =B;
			   }
			  
			  else if(k==2)
       		   {
				GPIOC_ODR =C;
			   }
			  
			  else if(k==3)
			   {
				GPIOC_ODR =D;
			   }
			  
			  else
			   {
			    GPIOC_ODR =E;
			   } 

			 }
             
			 if(k>=5 && k<=8)
			 {
			  GPIOC_ODR =A;
			  GPIOB_ODR =A;
			  

			  if(k==5)
			   {
				GPIOA_ODR =B;
			   }
			  
			  else if(k==6)
       		   {
				GPIOA_ODR =C;
			   }
			  
			  else if(k==7)
			   {
				GPIOA_ODR =D;
			   }
			  
			  else
			   {
			    GPIOA_ODR =E;
			   } 

			 }
			 if(k>=9 && k<=12)
			 {
			  GPIOA_ODR =A;
			  GPIOB_ODR =A;
			  


			  if(k==9)
			   {
				GPIOC_ODR =F;
			   }
			  
			  else if(k==10)
       		   {
				GPIOC_ODR =G;
			   }
			  
			  else if(k==11)
			   {
				GPIOC_ODR =H;
			   }
			  
			  else
			   {
			    GPIOC_ODR =I;
			   } 

			 }

			 if(k>=13 && k<=16)
			 {
			  GPIOA_ODR =A;
			  GPIOC_ODR =A;
			  

			  if(k==13)
			   {
				GPIOB_ODR =B;
			   }
			  
			  else if(k==14)
       		   {
				GPIOB_ODR =C;
			   }
			  
			  else if(k==15)
			   {
				GPIOB_ODR =D;
			   }
			  
			  else
			   {
			    GPIOB_ODR =E;
			   } 

			 }



		  }
		 }

	   }

above file are main file below file r pwm

Code:
#include "main.h"
#include "PWM.h"

void PWM_Init(void)
{
	RCC_APB2ENR |= 0x00000804;	//enable clock to GPIO port A and Timer 1
	GPIOA_CRH &= 0xFFFFF000;	//clear previous config for port A pin 8,9,10
	GPIOA_CRH |= 0x00000999;	//config port A pin 8,9,10 as 10Mhz push pull alternate purpose output.
	TIM1_CR1 = 0x0080;
	TIM1_CNT = 0;
	TIM1_PSC = 7;
	TIM1_ARR = (20000-1);
	TIM1_CCMR1 = 0x6868;
	TIM1_CCMR2 = 0x0068;
	TIM1_CCER = 0x0111;
	TIM1_CCR1 = 1000;
	TIM1_CCR2 = 1000;
	TIM1_CCR3 = 1000;
	TIM1_EGR = 0x0001;
	TIM1_BDTR = 0x8000;
	TIM1_CR1 |= 1;
}

void PWM_Ch1_drive_motor(const uint16_t PERIOD)
{
	if((PERIOD>=10)&&(PERIOD<=19950))
		{
	H	TIM1_CCR1 = PERIOD;
		}
	else if(PERIOD<10)
		{
		TIM1_CCR1=10;
		}
	else
		{
		TIM1_CCR1=19950;
		}	

	
}

help to pont out the mistake or changing the code....
 
Last edited by a moderator:

you are getting any compilation error or code is not working on hardware.
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…