onrsrc
Üye
- Katılım
- 30 May 2012
- Mesajlar
- 2
- Puanları
- 1
Arkadaşlar merhabalar bi konuda acil yardımınıza ihtiyacım var;
16F84A kullanarak 2 dc motorlu, 4 cny70 li, 1 hc-sr04 ultrasonic sensorlü mini sumo yaptım , programlarını yazdım ancak program sürekli PAUSE 5000 sorunu veriyor; 5 sn bekliyor tam çalşmak üzereyken cızt ediyor duruyor tekrar 5sn bekliyor bu böyle sürüyor. Acaba PAUSE 5000 i yanlış yere mi yazıyorum neden bu sorunla karşılaşıyorum 2 gündür bununla uğraşıyorum. Bir fikriniz varsa lütfen fikirlerinizi paylaşın. Programım burda;
DEFINE OSC 4
PORTA=0
PORTB=0
TRISA=%00010000
TRISB=%01111111
SYMBOL CNY7_L2=PORTB.0
SYMBOL CNY7_L1=PORTB.1
SYMBOL CNY7_R2=PORTB.2
SYMBOL CNY7_R1=PORTB.3
SYMBOL ANA_SENSOR=PORTB.6
SYMBOL TRIP=PORTB.7
SYMBOL MOTOR_L_G=PORTA.0
SYMBOL MOTOR_L_I=PORTA.1
SYMBOL MOTOR_R_G=PORTA.2
SYMBOL MOTOR_R_I=PORTA.3
CNY_ST VAR BIT
TIMER VAR WORD
CNY_ST=0
PORTA=0
PAUSE 5000
'_________________________________ANA PROGRAM DÖNGÜSÜ__________________________
ANAPROGRAM:
IF CNY7_L1=CNY_ST OR CNY7_L2=CNY_ST OR CNY7_R1=CNY_ST OR CNY7_R2=CNY_ST THEN
GOSUB SAVUNMA
GOTO ANAPROGRAM
ELSE
GOSUB TARAMA
ENDIF
GOTO ANAPROGRAM
TARAMA:
IF ANA_SENSOR=1 THEN
TIMER=TIMER+1
IF TIMER<1200 THEN
LOW MOTOR_L_G
LOW MOTOR_R_I
HIGH MOTOR_L_I
HIGH MOTOR_R_G
RETURN
ENDIF
ENDIF
IF ANA_SENSOR=0 THEN
LOW MOTOR_L_G
LOW MOTOR_R_G
HIGH MOTOR_L_I
HIGH MOTOR_R_I
TIMER=0
HIGH TRIP
PAUSEUS 10
LOW TRIP
RETURN
ENDIF
'___________________________________CNY 70 ALT PROGRAMI (SAVUNMA)_______________
SAVUNMA:
IF CNY7_L1=CNY_ST AND CNY7_R1=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_G
HIGH MOTOR_R_G
PAUSE 500
ENDIF
IF CNY7_L2=CNY_ST AND CNY7_R2=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_I
HIGH MOTOR_R_I
PAUSE 500
ENDIF
IF CNY7_L1=CNY_ST AND CNY7_L2=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_I
PAUSE 500
ENDIF
IF CNY7_R1=CNY_ST AND CNY7_R2=CNY_ST THEN
PORTA=0
HIGH MOTOR_R_I
PAUSE 500
ENDIF
IF CNY7_L1=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_G
PAUSE 50
HIGH MOTOR_R_G
PAUSE 500
ENDIF
IF CNY7_L2=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_I
PAUSE 50
HIGH MOTOR_R_I
PAUSE 500
ENDIF
IF CNY7_R1=CNY_ST THEN
PORTA=0
HIGH MOTOR_R_G
PAUSE 50
HIGH MOTOR_L_G
PAUSE 500
ENDIF
IF CNY7_R2=CNY_ST THEN
PORTA=0
HIGH MOTOR_R_I
PAUSE 50
HIGH MOTOR_L_I
PAUSE 500
ENDIF
RETURN
END
16F84A kullanarak 2 dc motorlu, 4 cny70 li, 1 hc-sr04 ultrasonic sensorlü mini sumo yaptım , programlarını yazdım ancak program sürekli PAUSE 5000 sorunu veriyor; 5 sn bekliyor tam çalşmak üzereyken cızt ediyor duruyor tekrar 5sn bekliyor bu böyle sürüyor. Acaba PAUSE 5000 i yanlış yere mi yazıyorum neden bu sorunla karşılaşıyorum 2 gündür bununla uğraşıyorum. Bir fikriniz varsa lütfen fikirlerinizi paylaşın. Programım burda;
DEFINE OSC 4
PORTA=0
PORTB=0
TRISA=%00010000
TRISB=%01111111
SYMBOL CNY7_L2=PORTB.0
SYMBOL CNY7_L1=PORTB.1
SYMBOL CNY7_R2=PORTB.2
SYMBOL CNY7_R1=PORTB.3
SYMBOL ANA_SENSOR=PORTB.6
SYMBOL TRIP=PORTB.7
SYMBOL MOTOR_L_G=PORTA.0
SYMBOL MOTOR_L_I=PORTA.1
SYMBOL MOTOR_R_G=PORTA.2
SYMBOL MOTOR_R_I=PORTA.3
CNY_ST VAR BIT
TIMER VAR WORD
CNY_ST=0
PORTA=0
PAUSE 5000
'_________________________________ANA PROGRAM DÖNGÜSÜ__________________________
ANAPROGRAM:
IF CNY7_L1=CNY_ST OR CNY7_L2=CNY_ST OR CNY7_R1=CNY_ST OR CNY7_R2=CNY_ST THEN
GOSUB SAVUNMA
GOTO ANAPROGRAM
ELSE
GOSUB TARAMA
ENDIF
GOTO ANAPROGRAM
TARAMA:
IF ANA_SENSOR=1 THEN
TIMER=TIMER+1
IF TIMER<1200 THEN
LOW MOTOR_L_G
LOW MOTOR_R_I
HIGH MOTOR_L_I
HIGH MOTOR_R_G
RETURN
ENDIF
ENDIF
IF ANA_SENSOR=0 THEN
LOW MOTOR_L_G
LOW MOTOR_R_G
HIGH MOTOR_L_I
HIGH MOTOR_R_I
TIMER=0
HIGH TRIP
PAUSEUS 10
LOW TRIP
RETURN
ENDIF
'___________________________________CNY 70 ALT PROGRAMI (SAVUNMA)_______________
SAVUNMA:
IF CNY7_L1=CNY_ST AND CNY7_R1=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_G
HIGH MOTOR_R_G
PAUSE 500
ENDIF
IF CNY7_L2=CNY_ST AND CNY7_R2=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_I
HIGH MOTOR_R_I
PAUSE 500
ENDIF
IF CNY7_L1=CNY_ST AND CNY7_L2=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_I
PAUSE 500
ENDIF
IF CNY7_R1=CNY_ST AND CNY7_R2=CNY_ST THEN
PORTA=0
HIGH MOTOR_R_I
PAUSE 500
ENDIF
IF CNY7_L1=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_G
PAUSE 50
HIGH MOTOR_R_G
PAUSE 500
ENDIF
IF CNY7_L2=CNY_ST THEN
PORTA=0
HIGH MOTOR_L_I
PAUSE 50
HIGH MOTOR_R_I
PAUSE 500
ENDIF
IF CNY7_R1=CNY_ST THEN
PORTA=0
HIGH MOTOR_R_G
PAUSE 50
HIGH MOTOR_L_G
PAUSE 500
ENDIF
IF CNY7_R2=CNY_ST THEN
PORTA=0
HIGH MOTOR_R_I
PAUSE 50
HIGH MOTOR_L_I
PAUSE 500
ENDIF
RETURN
END