Uploaded by User81987

Post test mikro

advertisement
1. Sebutkan fitur-fitur yang ada pada library hal dan tulis syntax untuk menjalankan
HAL_GPIO_ReadPin
HAL_GPIO_WritePin
HAL_GPIO_TogglePin
HAL_Delay
HAL_ADC_Start
Contoh
if(HAL_GPIO_ReadPin(PB_GPIO_Port,PB_Pin)==1&&HAL_GPIO_ReadPin(PIR_GPI
O_Port,PIR_Pin)==1)
{
HAL_GPIO_WritePin(MS_GPIO_Port,MS_Pin,GPIO_PIN_RESET);
}
2. Source code untuk membangkitkan PWM 70% pada f = 35 KHz
3. Sebutkan perbedaan time base dan evenbase dengan gambar
Time base : time base adalah timer dasar yang fungsinya hanya untuk pewaktuan dan
memiliki fungsi untuk penyulutan DAC atau dapat dikatakan sebagai timer berdasarkan
waktu. Timer yang termasuk timebase adalah tim6 dan tim7
Evenbase : timer yang cara kerjanya berdasarkan inputan atau digunakan untuk fungsi
interrupt jadi output dari timernya tidak berkelanjutan namun hanya setiap ada perintah
dari program yang ditulis. Timer yang termasuk evenbase adalah tim1 dan tim8.
4. Berikan contoh kapan menggunakan timebase, kapan menggunakan evenbase
Time Base
Misalnya pada pembangkitan sinyal PWM untuk rangkaian buck/boost converter dimana
timer digunakan untuk menentukan berapa persen nilai pembangkitan dari PWM yang
diatur dari nilai CCR dan ARR. Nilai CCR tersebut akan dibaca secara terus menerus dan
menghasilkan sinyal PWM yang diinginkan
Evenbase
Misalnya pada proses pengambilan nilai Vtrue rms pada system AC satu phasa dimana
terdapat proses Zero Crossing Detector didalamnya. Timer digunakan untuk fungsi
interrupt yaitu dimana setiap menyentuh 0 maka program akan mengambil nilai terbesar
dalam satu periode sinyal, jika tidak menyentuh 0 maka program tidak akan menjalankan
perintah. Jadi perintah hanya akan dijalankan saat fungsi interrupt itu terpenuhi yaitu saat
sinyal menyentuh 0.
5. Tulis source code untuk menampilkan power factor pada system AC satu phasa dan
tentukan user requirement nya
void EXTI0_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
CountF= TIM3->CNT;
TIM3->CNT=0;
frek=1/(CountF*0.0001);
}
void EXTI1_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
CountTeta=TIM3->CNT;
sudut=CountTeta*360/CountF;
cospi=cos(((sudut*3.14)/180.0));
if (CountTeta==0)
beban=0;
else if (CountTeta<(CountF/2))
beban=-1;
else if (CountTeta>(CountF/2))
beban=1;
}
Download