Ví dụ về chuyển đổi DAC:

Một phần của tài liệu Thực tập nhúng trên ARM (Trang 33 - 41)

Chương trình thực hiện xuất ra giá trị điện áp tương tự(DAC) trên chân PA4. CHương trình sẽ thực hiện quá trình chuyển đổi tương tự số trên chân PA0 và tính toán giá trị điện áp. Để kiểm tra xem quá trình DAC có đúng như mong muốn không, thì ta sẽ nối dây PA0 và chân PA4

Bước 2: Ở mục RCC , High Speed Clock chọn Crystal/Ceramic Resonator để cấu hình cho chip chạy ở thạch anh ngoài

Bước 5: Tạo code trên phần mềm Keil-ARM

Bước 6: Ở hàm main.c, tạo một biến kiểu uint16_t tên adc_value dùng để lưu giá trị adc. Tiếp theo tạo 2 biến float tên theory_voltage dùng để lưu trữ giá trị điện áp theo lí thuyết xuất ra trên DAC và real_voltage tức là điện áp thực tế đo được về bằng ADC. Nếu giá trị 2 biến có giá trị gần bằng nhau tức bài mô phỏng chính xác

Bước 7: Ở hàm while sử dụng đoạn lệnh HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R, (uint32_t)((theory_voltage/(float)3.0)*(float)4095.0)); HAL_Delay(2000); theory_voltage+=(float)0.20; if(theory_voltage>(float)3.1) { theory_voltage=0; }

Để xuất ra giá trị điện áp trên chân PA4 cách nhau một khoảng 2000ms và chạy cách nhau 0.2 volt nếu giá trị lớn hơn 3.1volt thì quay trở về 0

Bước 8: Viết chương trình phục vụ ngắt ADC

Void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){ if(hadc->Instance==hadc1.Instance){

adc_value=HAL_ADC_GetValue(&hadc1); real_voltage=(adc_value/4095.0)*3.0; }} để tính giá trị điện áp thực tế

Bước 9: Build & Debug để kiểm tra giá trị thực tế và lí thuyết

Một phần của tài liệu Thực tập nhúng trên ARM (Trang 33 - 41)

Tải bản đầy đủ (DOCX)

(51 trang)
w