Kamis, 26 Oktober 2017

Sorce Code Parking Sensor berbasis Nuvoton NUC140



Pemrograman untuk Parking Sensor

#include"DrvGPIO.h"
#include"DrvSYS.h"

void Init();
int main(void)
{
    Init();
    while(1)
    {
            if(DrvGPIO_GetBit(E_GPB,14)==0){
                        DrvGPIO_ClrBit(E_GPD,12);
                        DrvGPIO_SetBit(E_GPD,13);
                        DrvSYS_Delay(1000000);
                        DrvGPIO_SetBit(E_GPD,12);
                        DrvGPIO_ClrBit(E_GPD,13);
                        DrvSYS_Delay(1000000);
                        }
            else{
                        DrvGPIO_SetBit(E_GPD,12);
                        DrvGPIO_SetBit(E_GPD,13);
            }


            if(DrvGPIO_GetBit(E_GPB,15)==0){
                DrvGPIO_SetBit(E_GPD,14);
                DrvGPIO_ClrBit(E_GPD,15);
                DrvSYS_Delay(1000000);
                DrvGPIO_ClrBit(E_GPD,14);
                DrvGPIO_SetBit(E_GPD,15);
                DrvSYS_Delay(1000000);
                }
            else{
                DrvGPIO_SetBit(E_GPD,14);
                DrvGPIO_SetBit(E_GPD,15);
            }



            if(DrvGPIO_GetBit(E_GPB,12)==0){
                        DrvGPIO_SetBit(E_GPD,12);
                        DrvGPIO_SetBit(E_GPD,13);
            }
            else{
                        if(DrvGPIO_GetBit(E_GPB,14)==0){
                            DrvGPIO_ClrBit(E_GPD,12);
                            DrvGPIO_SetBit(E_GPD,13);
                            DrvSYS_Delay(1000000);
                            DrvGPIO_SetBit(E_GPD,12);
                            DrvGPIO_ClrBit(E_GPD,13);
                            DrvSYS_Delay(1000000);
                                    }
                                    else{
                            DrvGPIO_SetBit(E_GPD,12);
                            DrvGPIO_SetBit(E_GPD,13);
                                    }
                        }


            if(DrvGPIO_GetBit(E_GPB,13)==0){
                            DrvGPIO_SetBit(E_GPD,14);
                            DrvGPIO_SetBit(E_GPD,15);
                                    }
                                    else{
                                    if(DrvGPIO_GetBit(E_GPB,15)==0){
                                        DrvGPIO_SetBit(E_GPD,14);
                                        DrvGPIO_ClrBit(E_GPD,15);
                                        DrvSYS_Delay(1000000);
                                        DrvGPIO_ClrBit(E_GPD,14);
                                        DrvGPIO_SetBit(E_GPD,15);
                                        DrvSYS_Delay(1000000);
                                        }
                                                else{
                                        DrvGPIO_SetBit(E_GPD,14);
                                        DrvGPIO_SetBit(E_GPD,15);
                                                }
                        }
    }
}



Penjelasan Program :

Hal yang pertama dilakukan adalah inisialisasi GPIO.h dan SYS.h. setelah itu masuk ke inti program. Jika pada GPB, 14 mendapat logika = 0 maka motor 1 (GPD 12,13) akan bergerak CW yaitu searah jarum jam. Kemuudian bergerak selama 1 detik setelah itu motor bergerak CCW bergerak selama 1 detik. Selain itu motor 1 tidak bergerak.
Jika GPB,15 mendapat masukan 0 maka motor 2 bergerak CCW selama 1 detik. Kemudian bergerak CW selama 1 detik. Setelah itu motor 2 bergerak CW selama 1 detik. Selain itu motor 2 tidak bergerak.
Jika GPB, 12 mendapat masukan 0 maka motor 1 berhenti bergerak. Selain itu jika GPB,14 mendapatkan masukan = 0 maka motor 1 bergerak CW selama 1 detik. K  emudian motor 1 bergerak CCW selama 1 detik. Selain itu motor 1 tidak bergerak.
Jika GPB, 13 mendapatkan masukan = 0 maka motor 2 mati. Selain itu jika GPB, 15 mendapatkan masukan =0 maka motor 2 bergerak CCW selama 1 detik, setelah itu motor 2 bergerak CW selama 1 detik. Selain itu motor 2 tidak bergerak.



Jalur Rangkain Parking Sensor



 



1 komentar: