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; }