Page 1107 - 3-2
P. 1107

/*
             근접 센서에 따른 모터 구동 회로
             */
             input clk,rst,l_sen_f,r_sen_f,en;

             output reg [1:0]motor;
             reg [31:0] cnt;
             reg l_flag,r_flag;

             wire l_sen,r_sen;

             parameter pwm_value=300000;
             assign l_sen=~l_sen_f;
             assign r_sen=~r_sen_f;


             always @(posedge clk, negedge rst)
             begin
                     if(!rst)  motor<=2'b00;
                     else
                     begin
                     if(en)
                     begin
                     if(l_sen==1  && r_sen==1) begin l_flag<=0; r_flag<=0; motor<=2'b00; end
              //  둘다 인식 정지:
                     else
                     begin
                     if(l_sen==0  && r_sen==1) // 반시계방향 회전
                     begin
                             if(pwm_value>=cnt)   motor<=2'b10;
                     else   motor<=2'b00;

                     l_flag<=1;
                     end

                     else   if(l_sen==1 && r_sen==0)// 시계방향 회전
                     begin
                     if(pwm_value>=cnt)   motor<=2'b01;
                     else   motor<=2'b00;

                     r_flag<=1;
                     end

                     else   if(l_sen==0 && r_sen==0)
                                                   //find mode  찾다가 갑자기 사라졌을 때
                     begin

                     if(l_flag==1)
                     begin

                     if(pwm_value>=cnt)   motor<=2'b10; // 반 시계방향 회전
                     else   motor<=2'b00;
                     end
                     else   if(r_flag==1)
                     begin           if(pwm_value>=cnt)   motor<=2'b01; // 시계방향 회전
                     else   motor<=2'b00;
                     end

                     else
                     begin
                         if(pwm_value>=cnt)   motor<=2'b01;
                         else motor<=2'b00;
                     end
                     end
                     end


                                                        - 1107 -
   1102   1103   1104   1105   1106   1107   1108   1109   1110   1111   1112