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.
hocam mikroc ARM da işler nasıl yürüyor? Registerlere hiç bulaşmadan kod yazabiliyormuyuz ccs c gibi?
Çoğu kütüphanede registerlara bulaşmıyoruz. ADC, PWM vs....
Ama registerlara illaki işimiz düşüyor programlama esnasında...