Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => MikroC ARM => Konuyu başlatan: LukeSkywalker - 13 Ocak 2014, 19:48:42

Başlık: MikroC-ARM STM32f407-HC-SR04 Ultrasonik Sensör Mesafe Ölçümü..
Gönderen: LukeSkywalker - 13 Ocak 2014, 19:48:42


int sayac=116,uzaklik=1000;
char readbuff[64];
char writebuff[64];
char yuzler,onlar,birler;

void InitTimer7(){
  RCC_APB1ENR.TIM7EN = 1;
  TIM7_CR1.CEN = 0;
  TIM7_PSC = 0;
  TIM7_ARR = 83;
  NVIC_IntEnable(IVT_INT_TIM7);
  TIM7_DIER.UIE = 1;
}

void Timer7_interrupt() iv IVT_INT_TIM7 {
  TIM7_SR.UIF = 0;
  sayac++;
}

void main() {
InitTimer7();
HID_Enable(&readbuff,&writebuff);
GPIO_Digital_Output(&GPIOB_BASE, _GPIO_PINMASK_0);
GPIO_Digital_Input(&GPIOB_BASE, _GPIO_PINMASK_1);
while(1)
        {
         GPIOB_ODR.B0=1;
         delay_us(10);
         GPIOB_ODR.B0=0;
         while(GPIOB_IDR.B1==0);
         TIM7_CR1.CEN = 1;
         while(GPIOB_IDR.B1);
         TIM7_CR1.CEN=0;
         TIM7_CNT=0;
         uzaklik=sayac/58;
         sayac=0;
         yuzler=(uzaklik/100)+48;
         onlar=((uzaklik/10)%10)+48;
         birler=(uzaklik%10)+48;
         delay_ms(500);
         writebuff[0]=yuzler;
         writebuff[1]=onlar;
         writebuff[2]=birler;
         writebuff[3]=' ';
         writebuff[4]='c';
         writebuff[5]='m';
         writebuff[6]='.';
         writebuff[7]='\r';
         writebuff[8]='\n';
         HID_Write(&writebuff,64);
        }
}

void usb_kesme() iv IVT_INT_OTG_FS ics ICS_AUTO {
USB_Interrupt_Proc();
}


HID terminal üzerinden mesafeyi görebiliriz. Tabi burada USBdsc.c dosyasını veremedim. Bunu HID Terminal aracından kendiniz oluşturup projenize dahil edebilirsiniz.
Başlık: Ynt: MikroC-ARM STM32f407-HC-SR04 Ultrasonik Sensör Mesafe Ölçümü..
Gönderen: kantirici - 13 Ocak 2014, 20:20:12
hocam mikroc ARM da işler nasıl yürüyor? Registerlere hiç bulaşmadan kod yazabiliyormuyuz ccs c gibi?
Başlık: Ynt: MikroC-ARM STM32f407-HC-SR04 Ultrasonik Sensör Mesafe Ölçümü..
Gönderen: LukeSkywalker - 13 Ocak 2014, 20:23:46
Çoğu kütüphanede registerlara bulaşmıyoruz. ADC, PWM vs....
Ama registerlara illaki işimiz düşüyor programlama esnasında...