Merhaba,
Kod aşağıdaki gibi çalışıyor. Ben C bildiğim için C deyazdım. Zamanlama döngülerini hesaplamadan atmasyon yaptım. Ayrıca proje dosyası ektedir.
Saygılar
#include <pic.h>
#include <htc.h>
__CONFIG(1, FOSC0 & WDTE & BODEN & BKBUG);
#define Ileri RB1
#define Geri RB2
#define Sensor RB3
#define Role1_2 RB4
#define Role3 RB5
#define HBridge1 RB6
#define HBridge2 RB7
#define Bilinmeyen RB0
extern void delay_ms(unsigned char i);
extern void delay_s(unsigned char i);
void main(){
TRISB = 0x0E;
PORTB = 0x01;
while(1){
while(Ileri){
Role1_2 = 1;
HBridge1 = 1;
HBridge2 = 0;
}
if(Geri){
delay_ms(200);
if(Geri){
while(Geri);
Role3 = 1;
delay_ms(200);
Role3 = 0;
delay_s(5);
Role1_2 = 1;
HBridge2 = 1;
HBridge1 = 0;
while(!Sensor);
Role1_2 = 0;
HBridge2 = 0;
HBridge1 = 0;
}
}
Role1_2=0;
Role3=0;
HBridge2 = 0;
HBridge1 = 0;
}
}
void delay_ms(unsigned char i){
for(unsigned char j=0; j<i; j++){
for(unsigned int k=0; k<50; k++);
}
}
void delay_s(unsigned char i){
for(unsigned char j=0; j<i; j++){
for(unsigned int k=0; k<10; k++)delay_ms(100);
}
}