SlideShare a Scribd company logo
TinCanBan.Com – VanMau.Net
Hướng dẫn làm quen với STM8F103
Trước khi bắt đầu với những bài viết hướng dẫn các bạn tiếp cận với từng ngoại vi cụ
thể trên chip STM8. Bài viết hôm nay Ano xin được giới thiệu tới các bạn cấu trúc
phần cứng của STM8. Từ đó sẽ giới thiệu mục lục các bài viết hướng dẫn sử dụng các
ngoại vi trên STM8 để các bạn tiện theo dõi.
Mục tiêu cụ thể : Có cái nhìn tổng quát về cấu trúc phần cứng của chip STM8. Những
vấn đề cần lưu ý trong thiết kế phần cứng ứng dụng chip STM8.
Ok ! chúng ta bắt đầu thôi.
Central Processing Unit (CPU) : được thiết kế với kiến trúc 8-bit, bao gồm 6 thanh
ghi cho phép thực thi hiệu quả 80 lệnh trong tập lệnh của CPU. 6 thanh ghi của CPU
bao gồm :
• Accumulator (A).
• Index Registers (X and Y).
• Program Counter (PC).
• Stack Pointer (SP).
• Codition Code Register(CC).
Bootloader : vi chương trình hỗ trợ bootloader của STM 8 được nạp sẵn trong ROM
nội (dung lượng 2Kbyte ) của STM8 . cũng giống như các trình bootloader khác,
chương trình bootloader trên STM8 có nhiệm vụ nạp chương trình ứng dụng của
người dùng vào bộ nhớ flash /eeprom (nằm trong chip) thông qua các chuẩn giao tiếp
SPI,UART, CAN.
Cấu trúc bộ nhớ : sử dụng bộ nhớ flash để chứa chương trình thực thi và bộ nhớ
EEPROM để chứa dữ liệu. Người dùng hoàn toàn có thể sử dụng các lệnh tác động
vào các thanh ghi điều khiển để thực hiện các thao tác đọc ghi vào các bộ nhớ này.
Debug Module : thông qua module giao tiếp đơn dây SWIM (single wire interface
module) STM8 hỗ trợ người dùng các thanh ghi điều khiển cho phép người dùng tác
động trực tiếp vào các thanh ghi của CPU để có thể thực hiện debug chương trình ứng
dụng trên phần cứng đang hoạt động.
Bộ điều khiển ngắt (ITC) : Đây là khối quản lý ngắt tập trung trên chip STM8. Cho
phép quản lý các ngắt phần cứng (các yêu cầu ngắt từ các chân I/O hay từ các ngoại
vi) và các ngắt phần mềm (TRAP). Có thể phân chia thành 4 cấp ưu tiên với tổng cộng
32 ngắt. Các ngắt này được quản lý bởi các thanh ghi sau :
• Bit I1 và I0 trong thanh ghi CCR.
• Thanh ghi software priority registers (ITC_SPRx).
Power Supply : Sử dụng 4 khối nguồn sau :
• VDD/VSS : điện áp cung cấp 3V- 5.0V , đây là khối nguồn nuôi chính cho MCU
TinCanBan.Com – VanMau.Net
hoạt động.
• VDDO/VSSO : điện áp từ 3V – 5V, đây là khối nguồn dùng cho các chân I/O (tùy
thuộc vào từng package mà sẽ có 1 hay 2 cặp chân VDDO/VSSO).
• VDDA/VSSA : nguồn nuôi cho các khối analog bên trong MCU.
• VREF+/VREF- : điện áp tham chiếu cho khối ADC.
Tín hiệu RESET (RST): Hỗ trợ các tín hiệu reset sau:
• Reset ngoài thông qua chân NRST.
• Power-on reset (POR).
• Brown-out reset (BOR).
• Independent watchdog reset (IWDG).
• Window watchdog reset (WWIG).
• Software reset.
• SWIM reset.
• Illegal opcode reset.
• EMC reset.
Clock Control :
Được thiết kế cho phép ứng dụng của bạn được thực hiện với hiệu suất cao tiết kiệm
công suất tiêu thụ của CPU. Cho phép bạn có thể quản lý nguồn tần số xung clock
cung cấp cho từng ngoại vi từ tần số xung clock chính dựa vào các bộ chia tần số. Có
4 nguồn xung clock có thể được sử dụng để tạo ra tần số xung clock chính cung cấp
cho CPU :
• Nguồn xung clock thạch anh bên ngoài(HSE) : 1 – 24Mhz
• Nguồn xung user-external HSE user-ext: 24Mhz
• Bộ dao động nội RC tốc độ cao (HSI): 16Mhz
• Bộ dao động nội RC tốc độ thấp (LSI): 18Khz
Quản lý năng lượng :
Sau khi reset, CPU sẽ chạy vào chế độ Run Mode. Trong chế độ này, tần số xung
clock của CPU sẽ là fCPU và thực thi chương trình. Trong chế độ Run Mode thì
chúng ta có thể có một số cách để giảm điện áp tiêu thụ :
• Giảm tốc độ xung clock của hệ thống.
• Tập hợp các tần số xung clock của các ngoại vi riêng lẻ khi không sử dụng chúng
• Tắt các ngoại vi analog khi không sử dụng đến chúng.
Tuy nhiên không phải lúc nào cũng chạy ở chế độ Run Mode, để giảm điện năng tiêu
thụ cho CPU chúng ta có thể cho CPU chạy ở các chế độ khác tiêu thụ điện năng thấp
hơn như :
• Wait.
• Active- Halt.
TinCanBan.Com – VanMau.Net
• Halt.
Tiếp theo sau đây là danh sách các bài viết hướng dẫn giao tiếp ngoại vi tiếp theo
trong series này:
• UART.
• Ngắt
• Timer.
• ADC.
Bước đầu làm quen với STM8 - Creating Project GPIO
Chào các bạn . Hy vọng các bạn đều thành công với bài viết trước của mình.
Hôm nay, bài viết tiếp theo trong series này sẽ hướng dẫn các bạn cách tạo 1 project
với STVD + Cosmic. Chúng ta sẽ thực hiện tạo project sử dụng thư viện ngoại vi
GPIO. Ở đây, ta sẽ thực hiện ứng dụng điều khiển led LD1 trên KIT STM8s
Discovery nhấp nháy.
Để thuận tiện cho việc tiếp cận, Ano có xây dựng sẵn 1 project_template (trong file
đính kèm). Các bạn download file này về và tiến hành giải nén nó ra desktop nha.
Bây giờ chúng ta bắt đầu với project đầu tiên của mình.
Mở chương trình STVD lên (cách mở thì các bạn tham khảo bài viết trước của mình
nha).
Click File > Open workspace Hộp thoại Open workspace hiện ra và bạn chọn
đường dẫn tới STVD_workspace.stw trong thư mục project_template của mình. Cụ
thể đường dẫn ở đây như sau :
DesktopProject_templateProjectSTVDCosmicSTVD_ workspace.stw chonj vào
file STVD_workspace.stw và click open.
Sau khi chúng ta đã mở thành công worspace. Chúng ta làm tiếp bước tiếp theo là add
các thư viện ngoại vi vào chương trình, như đã nói ở trên, trong ví dụ này chúng ta sẽ
sử dụng thư viện ngoại vi GPIO của STM8. Cách add thư viện ngoại vi GPIO nhu sau
:
Bước 1 : add header file stm8s_gpio.h của thư viện GPIO, cách thực hiện như sau :
Trong cửa sổ worksapce của chương trình, bạn Right click vào Include Files sau đó
Left click vào Add Files to Folder như hình sau :
cửa sổ open mở ra, bạn chọn đường dẫn tới file stm8s_gpio.h của thư viện GPIO trong
thư mục project_template, cụ thể đường dẫn như sau:
Desktopdemo_gpioLibrariesSTM8S_StdPeriph_Drive rincstm8s_gpio.h
click vào chọn file stm8s_gpio.h và click vào open.
Bước 2 :add source file stm8s_gpio.c của thư viện GPIO, cách thực hiện như sau :
Trong cửa sổ worksapce của chương trình, bạn Right click vào Source Files sau đó
Left click vào Add Files to Folder như hình sau :
TinCanBan.Com – VanMau.Net
cửa sổ open mở ra, bạn chọn đường dẫn tới file stm8s_gpio.c của thư viện GPIO trong
thư mục project_template, cụ thể đường dẫn như
sau:Desktopdemo_gpioLibrariesSTM8S_StdPeriph_Drive rsrcstm8s_gpio.c
click vào chọn file stm8s_gpio.c và click vào open.
Sau khi tiến hành add file xong. Bây giờ chúng ta bắt đầu viết code cho file main.c
trong thư mục Source Files của cửa sổ workspace.
Đầu tiên ta khai báo thư viện ngoại vi được sử dụng :
Code:
#include "stm8s.h"
#include "stm8s_gpio.h"
Ở đây :
#include "stm8s.h" là có sẵn trong file main.c bạn không cần chỉnh sửa gì cả.
#include "stm8s_gpio.h" đây là header của thư viện ngoại vi GPIO mà mình sẽ dùng
trong ví dụ này, sau này bạn muốn dùng thư viện ngoại vi nào thì chỉ cẩn add file của
thư viện đó (như trên) và tiến hành khai báo trong main.c
Tiếp theo define chân dùng để điều khiển led. Theo thiết kế thì led LD1 trên KIT được
điều khiển bởi chân(pin) 0 của cồng (port) D , vì vậy ta tiến hành khai báo như sau :
Code:
#define LED_GPIO_PORT (GPIOD)
#define LED_GPIO_PINS (GPIO_PIN_0)
Khai báo prototype cho hàm con Delay(). Hàm này dùng để tạo thời gian delay giữa
các lần nhấp nháy của led.
Code:
void Delay (uint16_t nCount);
Tiếp theo, ta edit code cho hàm void main() như sau :
Code:
void main(void)
{
/* Initialize I/Os in Output Mode */
GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS,
GPIO_MODE_OUT_PP_LOW_FAST);
while (1)
{
/* Toggles LEDs */
GPIO_WriteReverse(LED_GPIO_PORT,
(GPIO_Pin_TypeDef)LED_GPIO_PINS);
Delay(0xFFFF);
TinCanBan.Com – VanMau.Net
}
}
Nói một chút về chương trình trên nhỉ.
_ Hàm GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS,
GPIO_MODE_OUT_PP_LOW_FAST); có tác dụng sẽ khởi động và thiết lập chân 0
của cổng D(chân dùng để điều khiển Led LD1) theo kiểu : Output push-pull, low
level, 10MHz (chi tiết cụ thể về các mode của GPIO các bạn tham khảo reference
manual).
_Hàm GPIO_WriteReverse(LED_GPIO_PORT,
(GPIO_Pin_TypeDef)LED_GPIO_PINS); sẽ thưc hiện thao tác đọc trạng thái hiện tại
của chân 0 cổng D, sau đó đảo trạng thái đó lại và xuất ngược trở lại chân 0 cổng D.
Cụ thể :
Nếu trạng thái hiện tại là 1 thì nó sẽ chuyển sang giá trị 0 và xuất ra.
Nếu trạng thái hiện tại là 0 thì nó sẽ chuyển sang giá trị 1 và xuất ra.
_ Hàm Delay (): tạo thời gian delay giữa các lần chuyển trạng thái của chân 0 cổng D.
Viết code cho hàm Delay() như sau :
Code:
void Delay(uint16_t nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
nCount ;
}
}
Sau đó ta lưu lại code vừa viết. Kết nối kit vào PC và tiến hành compile và debug
chương trình. (Cách thực hiện tham khảo bài viết trước của mình).
Cách bạn có thể thử thay đổi thời gian delay, hoặc dùng các hàm khác trong thư viện
ngoại vi để thực hiện điều khiển nhấp nháy led.
Bước đầu làm quen với STM8 - TIMER và Interrupt
Chào các bạn !
Hôm nay Ano xin tiếp tục series hướng dẫn sử dụng ngoại vi trên STM8.
Trong bài viết hôm nay mình xin hướng dẫn các bạn thực hiện một demo nhỏ sử dụng
ngoại vi Timer của SMT8. Đồng thời cũng trong bài viết này, mình sẽ hướng dẫn cách
sử dụng interrupt trong SMT8s bằng việc sử dụng interrupt của Timer.
Cấu trúc bài viết của ngày hôm nay như sau :
Phần 1 :
TinCanBan.Com – VanMau.Net
• Giới thiệu về Timer trong STM8
• Giới thiệu về bộ quản lý interrupt trong SMT8
Phần 2 :
Thực hiện demo như sau : thiết lập Timer 2 chạy ở chế độ Timming. Khi có ngắt xảy
ra
thì thực hiện bật tắt led LD1 trên kit.
Vậy là xong khúc dạo đầu, mình vào phần chính nhá. Hihi
Phần 1 :
Giới thiệu về Timer trong STM8 :
Các bộ timer trong STM8S và STM8A hỗ trợ đầy đủ 3 loại sau :
• Advanced Control : TIM1
• Gerenal purpose : TIM2/TIM3/TIM5
• Basic timer : TIM4/TIM6
Tất cả các timer này đều có chung một cấu trúc, tuy nhiên mỗi loại sẽ có một số thiết
kế đặc trưng nhất định.
Về cấu trúc chung của các timer sẽ bao gồm một số thanh ghi với các chức năng cơ
bản của bộ timer giúp người dùng dễ dàng phát triển nhanh các thiết kế.
Thông tin chi tiết về cấu trúc cũng như hoạt động của các bộ TIMER, các bạn có thể
tham khảo trong các tài liệu kỹ thuật được cung cấp bởi ST.
Sau đây là bảng tóm tắt chức năng chính của các bộ TIMER trong STM8.
Giới thiệu về bộ quản lý interrupt trong chip STM8 :
Bộ quản lý interrupt cho phép quản lý ngắt phần cứng cũng như các ngắt phần mềm
phát sinh. Được thiết kế theo kiểu ngắt lồng nhau, với nhiều cấp và mức ưu tiên khác
nhau bao gồm :
• 4 cấp ưu tiên cho các ngắt phần mềm.
• 32 ngắt phần cứng.
• 2 ngắt che mặt nạ : RESET, TRAP
• 1 ngắt không che mặt nạ
Cấu trúc chung cho bộ quản lý ngắt :
• ITC dựa trên các bit : I0 và I1 trong thanh ghi CCR.
• Thanh ghi quản lý ưu tiên ngắt phần mềm
Phần 2 :
Các bạn thực hiện lần lượt từng bước sau :
Mở project_template , thực hiện add các header và source file :
- stm8s_gpio.c
- stm8s_tim2.c
- stm8s_gpio.h
TinCanBan.Com – VanMau.Net
- smt8s_tim2.h
Theo mẫu sau:
Sau khi add các thư viện vào như trên, chúng ta bắt đầu edit code:
Trong file main.h
Thực hiện add các header file của thư viện vào hàm main :
Code:
#include "stm8s.h"
#include "stm8s_tim2.h"
#include "stm8s_gpio.h"
#include "stm8s_it.h"
Define chân GPIO cho ứng dụng, ở đây sử dụng led LD1.
Code:
#define LED_GPIO_PORT (GPIOD)
#define LED_GPIO_PINS (GPIO_PIN_0)
Trong file main.c
Thực hiện edit code như sau :
Các khai báo
Biến toàn cục
Code:
uint16_t CCR1_Val = 500;
Thực hiện edit hàm void main () như sau :
Code:
void main(void)
{
int i;
GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS,
GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_WriteHigh(LED_GPIO_PORT,
(GPIO_Pin_TypeDef)LED_GPIO_PINS);
/* Time base configuration */
//TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999);
TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 999);
/* Prescaler configuration */
TIM2_PrescalerConfig(TIM2_PRESCALER_2048,
TIM2_PSCRELOADMODE_IMMEDIATE);
/* Output Compare Active Mode configuration: Channel1 */
/*
TinCanBan.Com – VanMau.Net
TIM2_OCMode = TIM2_OCMODE_INACTIVE
TIM2_OCPolarity = TIM2_OCPOLARITY_HIGH
TIM2_Pulse = CCR1_Val
*/
TIM2_OC1Init( TIM2_OCMODE_TIMING,
TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH);
TIM2_OC1PreloadConfig(ENABLE);
/* ARRPreload Enable */
TIM2_ARRPreloadConfig(ENABLE);
/* Update Interrupt Enable */
TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE);
/* Enable TIM1 */
TIM2_Cmd(ENABLE);
enableInterrupts();
while (1)
{
}
}
Giải thích code một chút nha :
Ở đây ta sẽ bắt đầu giải thích code cho phần TIM và interrupt, phần GPIO các bạn
tham khảo trong bài viết trước của mình.
Code:
TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 999);
Thiết lập thông số cơ bản của bộ TIM2 với giá trị ARR = 999 và giá trị prescale =
2048
Code:
/* Prescaler configuration */
TIM2_PrescalerConfig(TIM2_PRESCALER_2048,
TIM2_PSCRELOADMODE_IMMEDIATE);
Thiết lập định dạng prescale config.
Code:
TIM2_OC1Init( TIM2_OCMODE_TIMING,
TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH);
Thiết lập giá trị cho cho channel 1 của TIM2.
Code:
TIM2_OC1PreloadConfig(ENABLE);
/* ARRPreload Enable */
TinCanBan.Com – VanMau.Net
TIM2_ARRPreloadConfig(ENABLE);
Cho phép reload các giá trị trong các thanh ghi OC và ARR.
Code:
TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE);
Thiết lập ngắt cho TIM2 khi TIM2 thực hiện update lại các giá trị
Code:
TIM2_Cmd(ENABLE);
Cho phép TIM2 chạy
Code:
enableInterrupts();
Cho phép hoạt động bộ quản lý ngắt.
Thực hiện edit code cho file stm8_it.c như sau :
Tìm tới phần khai báo cho ngát TIM2 update:
Code:
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
Và edit code như sau :
Code:
static uint8_t cnt = 0;
if(++cnt == 20)
{
GPIO_WriteReverse(LED_GPIO_PORT,
(GPIO_Pin_TypeDef)LED_GPIO_PINS);
cnt = 0;
}
Nội dung như sau : khi xảy ra ngắt update trên timer 2 20 lần thì sẽ chuyển trạng thái
led LD1
Code:
TIM2_ClearITPendingBit(TIM2_IT_UPDATE);
Xóa cờ ngắt tim2_update.
Sau khi thực hiện code các bạn có thể biên dịch và cho chạy thử ứng dụng
Bước đầu làm quen với STM8 - ADC + Interrupt
Chào các bạn !
Hôm nay Ano xin trở lại series hướng dẫn các bạn tiếp cận dòng vi điều khiển STM8
của hãng ST với bài viết về ADC.
ADC là gì và chức năng ra sao thì chắc mọi người cũng đã rõ. Vì vậy, Ano sẽ không
nói tới vấn đề này nữa, trong bài viết hôm nay Ano xin trình bày những ý sau
Phần 1 : Giới thiệu về cấu trúc khối ADC trong STM8
TinCanBan.Com – VanMau.Net
Phần 2: Thực hiện ứng dụng với khối ADC, trong bài viết này, Ano cũng sử dụng
ngắt cho việc cập nhật giá trị ADC. Mong rằng cùng với bài viết về timer trước các
bạn có thể sử dụng các ngắt của STM8 thành thạo (vai trò của ngắt trong lập trình vi
điều khiển quan trọng như thế nào thì chắc các bác cũng đã rõ).
Chúng ta bắt đầu thôi !
Phần 1 : Giới thiệu cấu trúc khối ADC trong STM8
Hiện tại, trên các sản phẩm dòng STM8 của ST hỗ trợ tối đa 2 khối ADC là : ADC1
và ADC2. Với các thông số chính như sau :
• Độ phân giải 10 bit.
• Có thể hoạt động ở 2 mode : Single or Continuous.
• Cho phép xác lập tần số hoạt động của bộ ADC.
• Tầm điện áp hoạt động : VSSA < Vin < VDDA.
Ở đây, chúng ta sẽ nói thêm một số tính năng nổi bật trên khối ADC1 là khối ADC
được hỗ trợ trên tất cả các sản phẩm STM8. Khối ADC1 có một số tính năng nổi bật
như sau :
• Hỗ trợ bộ nhớ đệm cho trường hợp sử dụng ADC ở Continuous mode (kích thước
của bộ nhớ đệm này phụ thuộc vào từng dòng sản phẩm).
• Hỗ trợ Scan mode cho cả 2 chế độ hoạt động là Single or Continuous.
• Analog watchdog, bao gồm cả ngưỡng trên và ngưỡng dưới.
• Tạo ra xung ngắt cho mỗi sự kiện analog watchdog.
Phần 2 : Thực hiện demo với ADC + Interrupt.
Mở project_template và thưc hiện add các file thư viện vào như hình sau :
Chú ý ở đây chúng ta sẽ add vào 2 file :
stm8s_adc1.h : header file
stm8_adc1.c : source file
Sau khi add các file vào như trên, chúng ta tiến hành edit code trong các file sau :
Trong file main.c thực hiện :
Code:
#include "stm8s.h"
#include "stm8s_adc2.h"
#include "stm8s_it.h"
Include các thư viện được dùng.
Code:
/* Private define */
uint16_t Conversion_Value = 0;
define biến toàn cục
Sau đõ tiến hành edit hàm void main() như sau :
TinCanBan.Com – VanMau.Net
Code:
/* Init GPIO for ADC1 */
GPIO_Init(GPIOE, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT);
/* De-Init ADC peripheral*/
ADC1_DeInit();
/* Init ADC2 peripheral */
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_9,
ADC1_PRESSEL_FCPU_D2, 
ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT,
ADC1_SCHMITTTRIG_CHANNEL9,
DISABLE);
/* Enable EOC interrupt */
ADC1_ITConfig(ADC1_IT_AWS9,ENABLE);
/* Enable general interrupts */
enableInterrupts();
/*Start Conversion */
ADC1_StartConversion();
/* The LEDs state is changed in the interrupt routine */
while (1);
Giải thích 1 chút nha :
Code:
/* Init GPIO for ADC1 */
GPIO_Init(GPIOE, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT);
Ở đây ta sử dụng chanel 9 của ADC 1, chân ngõ vào tín hiệu của chanel 9 là chân
PE6, vì vậy đoạn code trên được sử dụng để config cho chân PE6 làm ngõ vào tín hiệu
cho khối ADC1.
Code:
/* De-Init ADC peripheral*/
ADC1_DeInit();
/* Init ADC2 peripheral */
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_9,
ADC1_PRESSEL_FCPU_D2, 
ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT,
ADC1_SCHMITTTRIG_CHANNEL9,
DISABLE);
TinCanBan.Com – VanMau.Net
Khởi động và thiết lập các thông số cho Channel 9 của ADC1. Cụ thể các thông số đó
có ý nghĩa như thế nào. Các bạn có thể tham khảo trong bộ file stm8s_adc1.h của thư
viện giao tiếp ngoại vi STM8s.
Code:
/* Enable EOC interrupt */
ADC1_ITConfig(ADC1_IT_AWS9,ENABLE);
/* Enable general interrupts */
enableInterrupts();
Cho phép thực hiện ngắt với ADC1 channel 9.
Code:
/*Start Conversion */
ADC1_StartConversion();
Cho phép bộ ADC bắt đầu hoạt động.
Trong file stm8s_it.c :
Thực hiện edit code như sau :
Code:
extern uint16_t Conversion_Value;
Khai báo biến , biến này đã khai báo ở file main, cho nên chúng ta có tiền tố extern
phía trước.
Code:
INTERRUPT_HANDLER(ADC1_IRQHandler, 22)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
/* Get converted value */
Conversion_Value = ADC1_GetConversionValue();
ADC1_ClearITPendingBit(ADC1_IT_AWS9);
}
Nội dung đoạn code này là cập nhật giá trị của ADC vào biến Conversion_Value, và
xóa cờ ngắt.
Sau khi thực hiện các đoạn code trên chúng ta lưu lại và tiến hành dịch chương trình,
nạp vào kit STM8S_Discovery để tiến hành debug,để có thể debug các bạn có thể làm
1 module nhỏ thay đổi được giá trị điện áp và kết nối nó vào kit. Sau đó cho chương
trình chạy và debug.

More Related Content

What's hot

Atmel avr
Atmel avrAtmel avr
Atmel avr
Chinh Vo Wili
 
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHNTài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Thuan Nguyen
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bịLập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Xuân Thủy Nguyễn
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểmLập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Xuân Thủy Nguyễn
 
Mitsubishi
MitsubishiMitsubishi
Mitsubishiddungd4
 
Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1cuongcungdfdfdf
 
Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52
Cu Luc
 
Thiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiều
Thiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiềuThiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiều
Thiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiều
nataliej4
 
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đĐề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Những ứng dụng của PLC - bộ môn tự động đo lường
Những ứng dụng của PLC - bộ môn tự động đo lườngNhững ứng dụng của PLC - bộ môn tự động đo lường
Những ứng dụng của PLC - bộ môn tự động đo lường
Chia sẻ tài liệu học tập
 
Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051
Đinh Công Thiện Taydo University
 
Chuong6 hoạt động ngắt
Chuong6 hoạt động ngắtChuong6 hoạt động ngắt
Chuong6 hoạt động ngắt
Đinh Công Thiện Taydo University
 
Plc nang cao
Plc nang caoPlc nang cao
Plc nang cao
Chau Huy
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdk
Hiepsvd Bk
 
Giao trinh 8051.doc
Giao trinh 8051.docGiao trinh 8051.doc
Giao trinh 8051.doc
Lê Hùng
 
Tập lệnh plc họ melsec fx series của mitsubishi
Tập lệnh plc họ melsec fx series của mitsubishiTập lệnh plc họ melsec fx series của mitsubishi
Tập lệnh plc họ melsec fx series của mitsubishi
quanglocbp
 
Huongdansudung packet tracer5.0
Huongdansudung packet tracer5.0Huongdansudung packet tracer5.0
Huongdansudung packet tracer5.0thanhyu
 
Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16
Pham Hoang
 

What's hot (19)

Atmel avr
Atmel avrAtmel avr
Atmel avr
 
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHNTài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bịLập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểmLập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
 
Avr nang cao
Avr nang caoAvr nang cao
Avr nang cao
 
Mitsubishi
MitsubishiMitsubishi
Mitsubishi
 
Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1
 
Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52
 
Thiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiều
Thiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiềuThiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiều
Thiết kế, chế tạo mạch điều khiển, hiển thị tốc độ động cơ điện 1 chiều
 
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đĐề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
 
Những ứng dụng của PLC - bộ môn tự động đo lường
Những ứng dụng của PLC - bộ môn tự động đo lườngNhững ứng dụng của PLC - bộ môn tự động đo lường
Những ứng dụng của PLC - bộ môn tự động đo lường
 
Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051
 
Chuong6 hoạt động ngắt
Chuong6 hoạt động ngắtChuong6 hoạt động ngắt
Chuong6 hoạt động ngắt
 
Plc nang cao
Plc nang caoPlc nang cao
Plc nang cao
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdk
 
Giao trinh 8051.doc
Giao trinh 8051.docGiao trinh 8051.doc
Giao trinh 8051.doc
 
Tập lệnh plc họ melsec fx series của mitsubishi
Tập lệnh plc họ melsec fx series của mitsubishiTập lệnh plc họ melsec fx series của mitsubishi
Tập lệnh plc họ melsec fx series của mitsubishi
 
Huongdansudung packet tracer5.0
Huongdansudung packet tracer5.0Huongdansudung packet tracer5.0
Huongdansudung packet tracer5.0
 
Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16Điều khiển động cơ sử dụng atmega16
Điều khiển động cơ sử dụng atmega16
 

Viewers also liked

Mang truyen tai quang
Mang truyen tai quangMang truyen tai quang
Mang truyen tai quangvanliemtb
 
Tailieu.vncty.com tim hieu bluetooth va ung dung minh hoa
Tailieu.vncty.com   tim hieu bluetooth va ung dung minh hoaTailieu.vncty.com   tim hieu bluetooth va ung dung minh hoa
Tailieu.vncty.com tim hieu bluetooth va ung dung minh hoa
Trần Đức Anh
 
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
Trần Đức Anh
 
Tailieu.vncty.com 5138 529
Tailieu.vncty.com   5138 529Tailieu.vncty.com   5138 529
Tailieu.vncty.com 5138 529
Trần Đức Anh
 
Tailieu.vncty.com 5249 5591
Tailieu.vncty.com   5249 5591Tailieu.vncty.com   5249 5591
Tailieu.vncty.com 5249 5591
Trần Đức Anh
 
Bluetooth
BluetoothBluetooth
Bluetooth
John Williams
 
Chapter 2 optical communications20.01
Chapter 2   optical communications20.01Chapter 2   optical communications20.01
Chapter 2 optical communications20.01
Thế Anh Nguyễn
 
Slide ghep kenh_so0126_384
Slide ghep kenh_so0126_384Slide ghep kenh_so0126_384
Slide ghep kenh_so0126_384Kiem Phong
 
Bao cao Ma nguon mo
Bao cao Ma nguon moBao cao Ma nguon mo
Bao cao Ma nguon mo
Thái Duy Nguyễn
 
Phân tích và thiết kế FTTH trên GPON
Phân tích và thiết kế FTTH trên GPONPhân tích và thiết kế FTTH trên GPON
Phân tích và thiết kế FTTH trên GPON
freeloadtailieu
 
Bai giang thong_tin_quang
Bai giang thong_tin_quangBai giang thong_tin_quang
Bai giang thong_tin_quang
nothingx0x
 
Hieu ung-phi-tuyen-trong-soi-quang_ptit
Hieu ung-phi-tuyen-trong-soi-quang_ptitHieu ung-phi-tuyen-trong-soi-quang_ptit
Hieu ung-phi-tuyen-trong-soi-quang_ptit
Tùng Nguyễn Viết
 
85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon
85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon
85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon
Khoa Nguyen
 
Tran van chien
Tran van chienTran van chien
Tran van chienvanliemtb
 
Triet ly kinh doanh fpt
Triet ly kinh doanh fptTriet ly kinh doanh fpt
Triet ly kinh doanh fptTrinh Rose
 
Tìm hiểu về bluetooth
Tìm hiểu về bluetoothTìm hiểu về bluetooth
Tìm hiểu về bluetooth
Kim Oanh
 

Viewers also liked (20)

Mang truyen tai quang
Mang truyen tai quangMang truyen tai quang
Mang truyen tai quang
 
Giao tiep i2c
Giao tiep i2cGiao tiep i2c
Giao tiep i2c
 
Re
ReRe
Re
 
Tailieu.vncty.com tim hieu bluetooth va ung dung minh hoa
Tailieu.vncty.com   tim hieu bluetooth va ung dung minh hoaTailieu.vncty.com   tim hieu bluetooth va ung dung minh hoa
Tailieu.vncty.com tim hieu bluetooth va ung dung minh hoa
 
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
 
Tailieu.vncty.com 5138 529
Tailieu.vncty.com   5138 529Tailieu.vncty.com   5138 529
Tailieu.vncty.com 5138 529
 
Tailieu.vncty.com 5249 5591
Tailieu.vncty.com   5249 5591Tailieu.vncty.com   5249 5591
Tailieu.vncty.com 5249 5591
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Sdh
SdhSdh
Sdh
 
Chapter 2 optical communications20.01
Chapter 2   optical communications20.01Chapter 2   optical communications20.01
Chapter 2 optical communications20.01
 
Slide ghep kenh_so0126_384
Slide ghep kenh_so0126_384Slide ghep kenh_so0126_384
Slide ghep kenh_so0126_384
 
Bao cao Ma nguon mo
Bao cao Ma nguon moBao cao Ma nguon mo
Bao cao Ma nguon mo
 
Phân tích và thiết kế FTTH trên GPON
Phân tích và thiết kế FTTH trên GPONPhân tích và thiết kế FTTH trên GPON
Phân tích và thiết kế FTTH trên GPON
 
Bai giang thong_tin_quang
Bai giang thong_tin_quangBai giang thong_tin_quang
Bai giang thong_tin_quang
 
FTTH-GPON
FTTH-GPONFTTH-GPON
FTTH-GPON
 
Hieu ung-phi-tuyen-trong-soi-quang_ptit
Hieu ung-phi-tuyen-trong-soi-quang_ptitHieu ung-phi-tuyen-trong-soi-quang_ptit
Hieu ung-phi-tuyen-trong-soi-quang_ptit
 
85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon
85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon
85898174 mạng-truy-nhập-quang-đến-thue-bao-gpon
 
Tran van chien
Tran van chienTran van chien
Tran van chien
 
Triet ly kinh doanh fpt
Triet ly kinh doanh fptTriet ly kinh doanh fpt
Triet ly kinh doanh fpt
 
Tìm hiểu về bluetooth
Tìm hiểu về bluetoothTìm hiểu về bluetooth
Tìm hiểu về bluetooth
 

Similar to Hướng dẫn làm quen với stm8 f103 - tincanban.com

Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Vuong Nguyen
 
Bat dau voi stm32 (demo)
Bat dau voi stm32 (demo)Bat dau voi stm32 (demo)
Bat dau voi stm32 (demo)
Thien Ta
 
Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...
Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...
Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...
tcoco3199
 
Tìm hiểu cách dùng pic để chạy motor bước
Tìm hiểu cách dùng pic để chạy motor bướcTìm hiểu cách dùng pic để chạy motor bước
Tìm hiểu cách dùng pic để chạy motor bước
Dan Vu
 
Bao cao vdk_va_pic
Bao cao vdk_va_picBao cao vdk_va_pic
Bao cao vdk_va_pic
Hải Nguyễn
 
Mach vi dieu khien arduino va ung dung
Mach vi dieu khien arduino va ung dungMach vi dieu khien arduino va ung dung
Mach vi dieu khien arduino va ung dung
Hoa Le Gia
 
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdfTài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Man_Ebook
 
PLC mitsubishi
PLC mitsubishiPLC mitsubishi
PLC mitsubishi
quanglocbp
 
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.docĐố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
mokoboo56
 
Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52
Mr Giap
 
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
anhhoi12345
 
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
bibibobo2007
 
Tài liệu lập trình plc s7 200 full-01_2011_v1
Tài liệu lập trình plc s7 200 full-01_2011_v1Tài liệu lập trình plc s7 200 full-01_2011_v1
Tài liệu lập trình plc s7 200 full-01_2011_v1
quanglocbp
 
[ĐAMH] Điều khiển thiết bị điện qua máy tính
[ĐAMH] Điều khiển thiết bị điện qua máy tính[ĐAMH] Điều khiển thiết bị điện qua máy tính
[ĐAMH] Điều khiển thiết bị điện qua máy tính
Pham Hoang
 
Huong dan su dung packet tracer
Huong dan su dung packet tracerHuong dan su dung packet tracer
Huong dan su dung packet tracer
Duc Nguyen
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamesebuianhminh
 
Cong nghe tram_tron_be_tong_dung_plc
Cong nghe tram_tron_be_tong_dung_plcCong nghe tram_tron_be_tong_dung_plc
Cong nghe tram_tron_be_tong_dung_plctienle176
 
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdfĐồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
NuioKila
 
ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PIC
ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PICĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PIC
ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PIC
Công ty TNHH TM-DV Cơ Khí Toàn Phát
 
Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5
Mr Giap
 

Similar to Hướng dẫn làm quen với stm8 f103 - tincanban.com (20)

Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
 
Bat dau voi stm32 (demo)
Bat dau voi stm32 (demo)Bat dau voi stm32 (demo)
Bat dau voi stm32 (demo)
 
Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...
Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...
Luận Văn Nghiên Cứu Thiết Kế Và Xây Dựng Hệ Thống Truyền Đông Điện Động Cơ Mộ...
 
Tìm hiểu cách dùng pic để chạy motor bước
Tìm hiểu cách dùng pic để chạy motor bướcTìm hiểu cách dùng pic để chạy motor bước
Tìm hiểu cách dùng pic để chạy motor bước
 
Bao cao vdk_va_pic
Bao cao vdk_va_picBao cao vdk_va_pic
Bao cao vdk_va_pic
 
Mach vi dieu khien arduino va ung dung
Mach vi dieu khien arduino va ung dungMach vi dieu khien arduino va ung dung
Mach vi dieu khien arduino va ung dung
 
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdfTài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
 
PLC mitsubishi
PLC mitsubishiPLC mitsubishi
PLC mitsubishi
 
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.docĐố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
 
Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52
 
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
 
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
 
Tài liệu lập trình plc s7 200 full-01_2011_v1
Tài liệu lập trình plc s7 200 full-01_2011_v1Tài liệu lập trình plc s7 200 full-01_2011_v1
Tài liệu lập trình plc s7 200 full-01_2011_v1
 
[ĐAMH] Điều khiển thiết bị điện qua máy tính
[ĐAMH] Điều khiển thiết bị điện qua máy tính[ĐAMH] Điều khiển thiết bị điện qua máy tính
[ĐAMH] Điều khiển thiết bị điện qua máy tính
 
Huong dan su dung packet tracer
Huong dan su dung packet tracerHuong dan su dung packet tracer
Huong dan su dung packet tracer
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamese
 
Cong nghe tram_tron_be_tong_dung_plc
Cong nghe tram_tron_be_tong_dung_plcCong nghe tram_tron_be_tong_dung_plc
Cong nghe tram_tron_be_tong_dung_plc
 
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdfĐồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
 
ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PIC
ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PICĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PIC
ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH VDK PIC
 
Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5
 

More from Thùy Linh

Hướng dẫn viết bài tập làm văn số 3 – văn tự sự
Hướng dẫn viết bài tập làm văn số 3 – văn tự sựHướng dẫn viết bài tập làm văn số 3 – văn tự sự
Hướng dẫn viết bài tập làm văn số 3 – văn tự sự
Thùy Linh
 
Tư Duy Thiên Tài - Doremon Nobita - vanmau.net
Tư Duy Thiên Tài - Doremon Nobita - vanmau.netTư Duy Thiên Tài - Doremon Nobita - vanmau.net
Tư Duy Thiên Tài - Doremon Nobita - vanmau.net
Thùy Linh
 
Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...
Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...
Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...
Thùy Linh
 
Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...
Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...
Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...
Thùy Linh
 
Banana fiber-reinforced polypropylene composites: A study of the physico-mech...
Banana fiber-reinforced polypropylene composites: A study of the physico-mech...Banana fiber-reinforced polypropylene composites: A study of the physico-mech...
Banana fiber-reinforced polypropylene composites: A study of the physico-mech...
Thùy Linh
 
426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com
426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com
426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com
Thùy Linh
 
56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com
56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com
56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com
Thùy Linh
 
Biểu cảm về một loài cây em yêu thích - vanmau.net
Biểu cảm về một loài cây em yêu thích - vanmau.netBiểu cảm về một loài cây em yêu thích - vanmau.net
Biểu cảm về một loài cây em yêu thích - vanmau.net
Thùy Linh
 
Biểu cảm về cây tre việt nam - vanmau.net
Biểu cảm về cây tre việt nam - vanmau.netBiểu cảm về cây tre việt nam - vanmau.net
Biểu cảm về cây tre việt nam - vanmau.net
Thùy Linh
 
Bài viết số 2 lớp 9 (văn tự sự) - vanmau.net
Bài viết số 2 lớp 9 (văn tự sự) - vanmau.netBài viết số 2 lớp 9 (văn tự sự) - vanmau.net
Bài viết số 2 lớp 9 (văn tự sự) - vanmau.net
Thùy Linh
 
Kể lại những kỉ niệm ngày đầu tiên đi học - vanmau.net
Kể lại những kỉ niệm ngày đầu tiên đi học - vanmau.netKể lại những kỉ niệm ngày đầu tiên đi học - vanmau.net
Kể lại những kỉ niệm ngày đầu tiên đi học - vanmau.net
Thùy Linh
 
Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ...
 Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ... Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ...
Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ...
Thùy Linh
 
Tài liệu ôn phần biến đổi câu của cô Mai Phương
Tài liệu ôn phần biến đổi câu của cô Mai PhươngTài liệu ôn phần biến đổi câu của cô Mai Phương
Tài liệu ôn phần biến đổi câu của cô Mai Phương
Thùy Linh
 
Tuyệt đỉnh luyện đề thi thpt môn toán
Tuyệt đỉnh luyện đề thi thpt môn toánTuyệt đỉnh luyện đề thi thpt môn toán
Tuyệt đỉnh luyện đề thi thpt môn toán
Thùy Linh
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
Thùy Linh
 
Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...
Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...
Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...
Thùy Linh
 
Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...
Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...
Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...
Thùy Linh
 
Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...
Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...
Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...
Thùy Linh
 
Chất lượng mũ bảo hiểm - choque24h.net
 Chất lượng mũ bảo hiểm - choque24h.net Chất lượng mũ bảo hiểm - choque24h.net
Chất lượng mũ bảo hiểm - choque24h.net
Thùy Linh
 
Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015
Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015
Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015
Thùy Linh
 

More from Thùy Linh (20)

Hướng dẫn viết bài tập làm văn số 3 – văn tự sự
Hướng dẫn viết bài tập làm văn số 3 – văn tự sựHướng dẫn viết bài tập làm văn số 3 – văn tự sự
Hướng dẫn viết bài tập làm văn số 3 – văn tự sự
 
Tư Duy Thiên Tài - Doremon Nobita - vanmau.net
Tư Duy Thiên Tài - Doremon Nobita - vanmau.netTư Duy Thiên Tài - Doremon Nobita - vanmau.net
Tư Duy Thiên Tài - Doremon Nobita - vanmau.net
 
Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...
Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...
Thúc đẩy xuất khẩu hàng lâm sản chế biến của công ty tnhh xuất nhập khẩu chế ...
 
Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...
Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...
Khảo sát thực trạng và nhu cầu trang bị kỹ năng mềm của sinh viên ĐH-KTQD hiệ...
 
Banana fiber-reinforced polypropylene composites: A study of the physico-mech...
Banana fiber-reinforced polypropylene composites: A study of the physico-mech...Banana fiber-reinforced polypropylene composites: A study of the physico-mech...
Banana fiber-reinforced polypropylene composites: A study of the physico-mech...
 
426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com
426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com
426 câu hỏi trắc nghiệm tư tưởng hồ chí minh - có đáp án - tincanban.com
 
56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com
56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com
56 câu hỏi tự luạn và đáp án môn tư tưởng hồ chính minh - tincanban.com
 
Biểu cảm về một loài cây em yêu thích - vanmau.net
Biểu cảm về một loài cây em yêu thích - vanmau.netBiểu cảm về một loài cây em yêu thích - vanmau.net
Biểu cảm về một loài cây em yêu thích - vanmau.net
 
Biểu cảm về cây tre việt nam - vanmau.net
Biểu cảm về cây tre việt nam - vanmau.netBiểu cảm về cây tre việt nam - vanmau.net
Biểu cảm về cây tre việt nam - vanmau.net
 
Bài viết số 2 lớp 9 (văn tự sự) - vanmau.net
Bài viết số 2 lớp 9 (văn tự sự) - vanmau.netBài viết số 2 lớp 9 (văn tự sự) - vanmau.net
Bài viết số 2 lớp 9 (văn tự sự) - vanmau.net
 
Kể lại những kỉ niệm ngày đầu tiên đi học - vanmau.net
Kể lại những kỉ niệm ngày đầu tiên đi học - vanmau.netKể lại những kỉ niệm ngày đầu tiên đi học - vanmau.net
Kể lại những kỉ niệm ngày đầu tiên đi học - vanmau.net
 
Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ...
 Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ... Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ...
Tổng hợp các dạng toán về phương trình đường thẳng trong các đề thi (có lời ...
 
Tài liệu ôn phần biến đổi câu của cô Mai Phương
Tài liệu ôn phần biến đổi câu của cô Mai PhươngTài liệu ôn phần biến đổi câu của cô Mai Phương
Tài liệu ôn phần biến đổi câu của cô Mai Phương
 
Tuyệt đỉnh luyện đề thi thpt môn toán
Tuyệt đỉnh luyện đề thi thpt môn toánTuyệt đỉnh luyện đề thi thpt môn toán
Tuyệt đỉnh luyện đề thi thpt môn toán
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...
Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...
Một số đề xuất và kiến nghị nhằm nâng cao hiệu quả sản xuất kinh doanh của xí...
 
Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...
Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...
Lập kế hoạch phát triển sản xuất kinh doanh của xí nghiệp khai thác công trìn...
 
Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...
Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...
Thực trạng hoạt động marketing công ty tnhh thương mại sản xuất thuốc thú y g...
 
Chất lượng mũ bảo hiểm - choque24h.net
 Chất lượng mũ bảo hiểm - choque24h.net Chất lượng mũ bảo hiểm - choque24h.net
Chất lượng mũ bảo hiểm - choque24h.net
 
Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015
Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015
Cấu trúc ngữ pháp ôn thi Đại học môn Anh năm 2015
 

Hướng dẫn làm quen với stm8 f103 - tincanban.com

  • 1. TinCanBan.Com – VanMau.Net Hướng dẫn làm quen với STM8F103 Trước khi bắt đầu với những bài viết hướng dẫn các bạn tiếp cận với từng ngoại vi cụ thể trên chip STM8. Bài viết hôm nay Ano xin được giới thiệu tới các bạn cấu trúc phần cứng của STM8. Từ đó sẽ giới thiệu mục lục các bài viết hướng dẫn sử dụng các ngoại vi trên STM8 để các bạn tiện theo dõi. Mục tiêu cụ thể : Có cái nhìn tổng quát về cấu trúc phần cứng của chip STM8. Những vấn đề cần lưu ý trong thiết kế phần cứng ứng dụng chip STM8. Ok ! chúng ta bắt đầu thôi. Central Processing Unit (CPU) : được thiết kế với kiến trúc 8-bit, bao gồm 6 thanh ghi cho phép thực thi hiệu quả 80 lệnh trong tập lệnh của CPU. 6 thanh ghi của CPU bao gồm : • Accumulator (A). • Index Registers (X and Y). • Program Counter (PC). • Stack Pointer (SP). • Codition Code Register(CC). Bootloader : vi chương trình hỗ trợ bootloader của STM 8 được nạp sẵn trong ROM nội (dung lượng 2Kbyte ) của STM8 . cũng giống như các trình bootloader khác, chương trình bootloader trên STM8 có nhiệm vụ nạp chương trình ứng dụng của người dùng vào bộ nhớ flash /eeprom (nằm trong chip) thông qua các chuẩn giao tiếp SPI,UART, CAN. Cấu trúc bộ nhớ : sử dụng bộ nhớ flash để chứa chương trình thực thi và bộ nhớ EEPROM để chứa dữ liệu. Người dùng hoàn toàn có thể sử dụng các lệnh tác động vào các thanh ghi điều khiển để thực hiện các thao tác đọc ghi vào các bộ nhớ này. Debug Module : thông qua module giao tiếp đơn dây SWIM (single wire interface module) STM8 hỗ trợ người dùng các thanh ghi điều khiển cho phép người dùng tác động trực tiếp vào các thanh ghi của CPU để có thể thực hiện debug chương trình ứng dụng trên phần cứng đang hoạt động. Bộ điều khiển ngắt (ITC) : Đây là khối quản lý ngắt tập trung trên chip STM8. Cho phép quản lý các ngắt phần cứng (các yêu cầu ngắt từ các chân I/O hay từ các ngoại vi) và các ngắt phần mềm (TRAP). Có thể phân chia thành 4 cấp ưu tiên với tổng cộng 32 ngắt. Các ngắt này được quản lý bởi các thanh ghi sau : • Bit I1 và I0 trong thanh ghi CCR. • Thanh ghi software priority registers (ITC_SPRx). Power Supply : Sử dụng 4 khối nguồn sau : • VDD/VSS : điện áp cung cấp 3V- 5.0V , đây là khối nguồn nuôi chính cho MCU
  • 2. TinCanBan.Com – VanMau.Net hoạt động. • VDDO/VSSO : điện áp từ 3V – 5V, đây là khối nguồn dùng cho các chân I/O (tùy thuộc vào từng package mà sẽ có 1 hay 2 cặp chân VDDO/VSSO). • VDDA/VSSA : nguồn nuôi cho các khối analog bên trong MCU. • VREF+/VREF- : điện áp tham chiếu cho khối ADC. Tín hiệu RESET (RST): Hỗ trợ các tín hiệu reset sau: • Reset ngoài thông qua chân NRST. • Power-on reset (POR). • Brown-out reset (BOR). • Independent watchdog reset (IWDG). • Window watchdog reset (WWIG). • Software reset. • SWIM reset. • Illegal opcode reset. • EMC reset. Clock Control : Được thiết kế cho phép ứng dụng của bạn được thực hiện với hiệu suất cao tiết kiệm công suất tiêu thụ của CPU. Cho phép bạn có thể quản lý nguồn tần số xung clock cung cấp cho từng ngoại vi từ tần số xung clock chính dựa vào các bộ chia tần số. Có 4 nguồn xung clock có thể được sử dụng để tạo ra tần số xung clock chính cung cấp cho CPU : • Nguồn xung clock thạch anh bên ngoài(HSE) : 1 – 24Mhz • Nguồn xung user-external HSE user-ext: 24Mhz • Bộ dao động nội RC tốc độ cao (HSI): 16Mhz • Bộ dao động nội RC tốc độ thấp (LSI): 18Khz Quản lý năng lượng : Sau khi reset, CPU sẽ chạy vào chế độ Run Mode. Trong chế độ này, tần số xung clock của CPU sẽ là fCPU và thực thi chương trình. Trong chế độ Run Mode thì chúng ta có thể có một số cách để giảm điện áp tiêu thụ : • Giảm tốc độ xung clock của hệ thống. • Tập hợp các tần số xung clock của các ngoại vi riêng lẻ khi không sử dụng chúng • Tắt các ngoại vi analog khi không sử dụng đến chúng. Tuy nhiên không phải lúc nào cũng chạy ở chế độ Run Mode, để giảm điện năng tiêu thụ cho CPU chúng ta có thể cho CPU chạy ở các chế độ khác tiêu thụ điện năng thấp hơn như : • Wait. • Active- Halt.
  • 3. TinCanBan.Com – VanMau.Net • Halt. Tiếp theo sau đây là danh sách các bài viết hướng dẫn giao tiếp ngoại vi tiếp theo trong series này: • UART. • Ngắt • Timer. • ADC. Bước đầu làm quen với STM8 - Creating Project GPIO Chào các bạn . Hy vọng các bạn đều thành công với bài viết trước của mình. Hôm nay, bài viết tiếp theo trong series này sẽ hướng dẫn các bạn cách tạo 1 project với STVD + Cosmic. Chúng ta sẽ thực hiện tạo project sử dụng thư viện ngoại vi GPIO. Ở đây, ta sẽ thực hiện ứng dụng điều khiển led LD1 trên KIT STM8s Discovery nhấp nháy. Để thuận tiện cho việc tiếp cận, Ano có xây dựng sẵn 1 project_template (trong file đính kèm). Các bạn download file này về và tiến hành giải nén nó ra desktop nha. Bây giờ chúng ta bắt đầu với project đầu tiên của mình. Mở chương trình STVD lên (cách mở thì các bạn tham khảo bài viết trước của mình nha). Click File > Open workspace Hộp thoại Open workspace hiện ra và bạn chọn đường dẫn tới STVD_workspace.stw trong thư mục project_template của mình. Cụ thể đường dẫn ở đây như sau : DesktopProject_templateProjectSTVDCosmicSTVD_ workspace.stw chonj vào file STVD_workspace.stw và click open. Sau khi chúng ta đã mở thành công worspace. Chúng ta làm tiếp bước tiếp theo là add các thư viện ngoại vi vào chương trình, như đã nói ở trên, trong ví dụ này chúng ta sẽ sử dụng thư viện ngoại vi GPIO của STM8. Cách add thư viện ngoại vi GPIO nhu sau : Bước 1 : add header file stm8s_gpio.h của thư viện GPIO, cách thực hiện như sau : Trong cửa sổ worksapce của chương trình, bạn Right click vào Include Files sau đó Left click vào Add Files to Folder như hình sau : cửa sổ open mở ra, bạn chọn đường dẫn tới file stm8s_gpio.h của thư viện GPIO trong thư mục project_template, cụ thể đường dẫn như sau: Desktopdemo_gpioLibrariesSTM8S_StdPeriph_Drive rincstm8s_gpio.h click vào chọn file stm8s_gpio.h và click vào open. Bước 2 :add source file stm8s_gpio.c của thư viện GPIO, cách thực hiện như sau : Trong cửa sổ worksapce của chương trình, bạn Right click vào Source Files sau đó Left click vào Add Files to Folder như hình sau :
  • 4. TinCanBan.Com – VanMau.Net cửa sổ open mở ra, bạn chọn đường dẫn tới file stm8s_gpio.c của thư viện GPIO trong thư mục project_template, cụ thể đường dẫn như sau:Desktopdemo_gpioLibrariesSTM8S_StdPeriph_Drive rsrcstm8s_gpio.c click vào chọn file stm8s_gpio.c và click vào open. Sau khi tiến hành add file xong. Bây giờ chúng ta bắt đầu viết code cho file main.c trong thư mục Source Files của cửa sổ workspace. Đầu tiên ta khai báo thư viện ngoại vi được sử dụng : Code: #include "stm8s.h" #include "stm8s_gpio.h" Ở đây : #include "stm8s.h" là có sẵn trong file main.c bạn không cần chỉnh sửa gì cả. #include "stm8s_gpio.h" đây là header của thư viện ngoại vi GPIO mà mình sẽ dùng trong ví dụ này, sau này bạn muốn dùng thư viện ngoại vi nào thì chỉ cẩn add file của thư viện đó (như trên) và tiến hành khai báo trong main.c Tiếp theo define chân dùng để điều khiển led. Theo thiết kế thì led LD1 trên KIT được điều khiển bởi chân(pin) 0 của cồng (port) D , vì vậy ta tiến hành khai báo như sau : Code: #define LED_GPIO_PORT (GPIOD) #define LED_GPIO_PINS (GPIO_PIN_0) Khai báo prototype cho hàm con Delay(). Hàm này dùng để tạo thời gian delay giữa các lần nhấp nháy của led. Code: void Delay (uint16_t nCount); Tiếp theo, ta edit code cho hàm void main() như sau : Code: void main(void) { /* Initialize I/Os in Output Mode */ GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST); while (1) { /* Toggles LEDs */ GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); Delay(0xFFFF);
  • 5. TinCanBan.Com – VanMau.Net } } Nói một chút về chương trình trên nhỉ. _ Hàm GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST); có tác dụng sẽ khởi động và thiết lập chân 0 của cổng D(chân dùng để điều khiển Led LD1) theo kiểu : Output push-pull, low level, 10MHz (chi tiết cụ thể về các mode của GPIO các bạn tham khảo reference manual). _Hàm GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); sẽ thưc hiện thao tác đọc trạng thái hiện tại của chân 0 cổng D, sau đó đảo trạng thái đó lại và xuất ngược trở lại chân 0 cổng D. Cụ thể : Nếu trạng thái hiện tại là 1 thì nó sẽ chuyển sang giá trị 0 và xuất ra. Nếu trạng thái hiện tại là 0 thì nó sẽ chuyển sang giá trị 1 và xuất ra. _ Hàm Delay (): tạo thời gian delay giữa các lần chuyển trạng thái của chân 0 cổng D. Viết code cho hàm Delay() như sau : Code: void Delay(uint16_t nCount) { /* Decrement nCount value */ while (nCount != 0) { nCount ; } } Sau đó ta lưu lại code vừa viết. Kết nối kit vào PC và tiến hành compile và debug chương trình. (Cách thực hiện tham khảo bài viết trước của mình). Cách bạn có thể thử thay đổi thời gian delay, hoặc dùng các hàm khác trong thư viện ngoại vi để thực hiện điều khiển nhấp nháy led. Bước đầu làm quen với STM8 - TIMER và Interrupt Chào các bạn ! Hôm nay Ano xin tiếp tục series hướng dẫn sử dụng ngoại vi trên STM8. Trong bài viết hôm nay mình xin hướng dẫn các bạn thực hiện một demo nhỏ sử dụng ngoại vi Timer của SMT8. Đồng thời cũng trong bài viết này, mình sẽ hướng dẫn cách sử dụng interrupt trong SMT8s bằng việc sử dụng interrupt của Timer. Cấu trúc bài viết của ngày hôm nay như sau : Phần 1 :
  • 6. TinCanBan.Com – VanMau.Net • Giới thiệu về Timer trong STM8 • Giới thiệu về bộ quản lý interrupt trong SMT8 Phần 2 : Thực hiện demo như sau : thiết lập Timer 2 chạy ở chế độ Timming. Khi có ngắt xảy ra thì thực hiện bật tắt led LD1 trên kit. Vậy là xong khúc dạo đầu, mình vào phần chính nhá. Hihi Phần 1 : Giới thiệu về Timer trong STM8 : Các bộ timer trong STM8S và STM8A hỗ trợ đầy đủ 3 loại sau : • Advanced Control : TIM1 • Gerenal purpose : TIM2/TIM3/TIM5 • Basic timer : TIM4/TIM6 Tất cả các timer này đều có chung một cấu trúc, tuy nhiên mỗi loại sẽ có một số thiết kế đặc trưng nhất định. Về cấu trúc chung của các timer sẽ bao gồm một số thanh ghi với các chức năng cơ bản của bộ timer giúp người dùng dễ dàng phát triển nhanh các thiết kế. Thông tin chi tiết về cấu trúc cũng như hoạt động của các bộ TIMER, các bạn có thể tham khảo trong các tài liệu kỹ thuật được cung cấp bởi ST. Sau đây là bảng tóm tắt chức năng chính của các bộ TIMER trong STM8. Giới thiệu về bộ quản lý interrupt trong chip STM8 : Bộ quản lý interrupt cho phép quản lý ngắt phần cứng cũng như các ngắt phần mềm phát sinh. Được thiết kế theo kiểu ngắt lồng nhau, với nhiều cấp và mức ưu tiên khác nhau bao gồm : • 4 cấp ưu tiên cho các ngắt phần mềm. • 32 ngắt phần cứng. • 2 ngắt che mặt nạ : RESET, TRAP • 1 ngắt không che mặt nạ Cấu trúc chung cho bộ quản lý ngắt : • ITC dựa trên các bit : I0 và I1 trong thanh ghi CCR. • Thanh ghi quản lý ưu tiên ngắt phần mềm Phần 2 : Các bạn thực hiện lần lượt từng bước sau : Mở project_template , thực hiện add các header và source file : - stm8s_gpio.c - stm8s_tim2.c - stm8s_gpio.h
  • 7. TinCanBan.Com – VanMau.Net - smt8s_tim2.h Theo mẫu sau: Sau khi add các thư viện vào như trên, chúng ta bắt đầu edit code: Trong file main.h Thực hiện add các header file của thư viện vào hàm main : Code: #include "stm8s.h" #include "stm8s_tim2.h" #include "stm8s_gpio.h" #include "stm8s_it.h" Define chân GPIO cho ứng dụng, ở đây sử dụng led LD1. Code: #define LED_GPIO_PORT (GPIOD) #define LED_GPIO_PINS (GPIO_PIN_0) Trong file main.c Thực hiện edit code như sau : Các khai báo Biến toàn cục Code: uint16_t CCR1_Val = 500; Thực hiện edit hàm void main () như sau : Code: void main(void) { int i; GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteHigh(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); /* Time base configuration */ //TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999); TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 999); /* Prescaler configuration */ TIM2_PrescalerConfig(TIM2_PRESCALER_2048, TIM2_PSCRELOADMODE_IMMEDIATE); /* Output Compare Active Mode configuration: Channel1 */ /*
  • 8. TinCanBan.Com – VanMau.Net TIM2_OCMode = TIM2_OCMODE_INACTIVE TIM2_OCPolarity = TIM2_OCPOLARITY_HIGH TIM2_Pulse = CCR1_Val */ TIM2_OC1Init( TIM2_OCMODE_TIMING, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC1PreloadConfig(ENABLE); /* ARRPreload Enable */ TIM2_ARRPreloadConfig(ENABLE); /* Update Interrupt Enable */ TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE); /* Enable TIM1 */ TIM2_Cmd(ENABLE); enableInterrupts(); while (1) { } } Giải thích code một chút nha : Ở đây ta sẽ bắt đầu giải thích code cho phần TIM và interrupt, phần GPIO các bạn tham khảo trong bài viết trước của mình. Code: TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 999); Thiết lập thông số cơ bản của bộ TIM2 với giá trị ARR = 999 và giá trị prescale = 2048 Code: /* Prescaler configuration */ TIM2_PrescalerConfig(TIM2_PRESCALER_2048, TIM2_PSCRELOADMODE_IMMEDIATE); Thiết lập định dạng prescale config. Code: TIM2_OC1Init( TIM2_OCMODE_TIMING, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH); Thiết lập giá trị cho cho channel 1 của TIM2. Code: TIM2_OC1PreloadConfig(ENABLE); /* ARRPreload Enable */
  • 9. TinCanBan.Com – VanMau.Net TIM2_ARRPreloadConfig(ENABLE); Cho phép reload các giá trị trong các thanh ghi OC và ARR. Code: TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE); Thiết lập ngắt cho TIM2 khi TIM2 thực hiện update lại các giá trị Code: TIM2_Cmd(ENABLE); Cho phép TIM2 chạy Code: enableInterrupts(); Cho phép hoạt động bộ quản lý ngắt. Thực hiện edit code cho file stm8_it.c như sau : Tìm tới phần khai báo cho ngát TIM2 update: Code: INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13) Và edit code như sau : Code: static uint8_t cnt = 0; if(++cnt == 20) { GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); cnt = 0; } Nội dung như sau : khi xảy ra ngắt update trên timer 2 20 lần thì sẽ chuyển trạng thái led LD1 Code: TIM2_ClearITPendingBit(TIM2_IT_UPDATE); Xóa cờ ngắt tim2_update. Sau khi thực hiện code các bạn có thể biên dịch và cho chạy thử ứng dụng Bước đầu làm quen với STM8 - ADC + Interrupt Chào các bạn ! Hôm nay Ano xin trở lại series hướng dẫn các bạn tiếp cận dòng vi điều khiển STM8 của hãng ST với bài viết về ADC. ADC là gì và chức năng ra sao thì chắc mọi người cũng đã rõ. Vì vậy, Ano sẽ không nói tới vấn đề này nữa, trong bài viết hôm nay Ano xin trình bày những ý sau Phần 1 : Giới thiệu về cấu trúc khối ADC trong STM8
  • 10. TinCanBan.Com – VanMau.Net Phần 2: Thực hiện ứng dụng với khối ADC, trong bài viết này, Ano cũng sử dụng ngắt cho việc cập nhật giá trị ADC. Mong rằng cùng với bài viết về timer trước các bạn có thể sử dụng các ngắt của STM8 thành thạo (vai trò của ngắt trong lập trình vi điều khiển quan trọng như thế nào thì chắc các bác cũng đã rõ). Chúng ta bắt đầu thôi ! Phần 1 : Giới thiệu cấu trúc khối ADC trong STM8 Hiện tại, trên các sản phẩm dòng STM8 của ST hỗ trợ tối đa 2 khối ADC là : ADC1 và ADC2. Với các thông số chính như sau : • Độ phân giải 10 bit. • Có thể hoạt động ở 2 mode : Single or Continuous. • Cho phép xác lập tần số hoạt động của bộ ADC. • Tầm điện áp hoạt động : VSSA < Vin < VDDA. Ở đây, chúng ta sẽ nói thêm một số tính năng nổi bật trên khối ADC1 là khối ADC được hỗ trợ trên tất cả các sản phẩm STM8. Khối ADC1 có một số tính năng nổi bật như sau : • Hỗ trợ bộ nhớ đệm cho trường hợp sử dụng ADC ở Continuous mode (kích thước của bộ nhớ đệm này phụ thuộc vào từng dòng sản phẩm). • Hỗ trợ Scan mode cho cả 2 chế độ hoạt động là Single or Continuous. • Analog watchdog, bao gồm cả ngưỡng trên và ngưỡng dưới. • Tạo ra xung ngắt cho mỗi sự kiện analog watchdog. Phần 2 : Thực hiện demo với ADC + Interrupt. Mở project_template và thưc hiện add các file thư viện vào như hình sau : Chú ý ở đây chúng ta sẽ add vào 2 file : stm8s_adc1.h : header file stm8_adc1.c : source file Sau khi add các file vào như trên, chúng ta tiến hành edit code trong các file sau : Trong file main.c thực hiện : Code: #include "stm8s.h" #include "stm8s_adc2.h" #include "stm8s_it.h" Include các thư viện được dùng. Code: /* Private define */ uint16_t Conversion_Value = 0; define biến toàn cục Sau đõ tiến hành edit hàm void main() như sau :
  • 11. TinCanBan.Com – VanMau.Net Code: /* Init GPIO for ADC1 */ GPIO_Init(GPIOE, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT); /* De-Init ADC peripheral*/ ADC1_DeInit(); /* Init ADC2 peripheral */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_9, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL9, DISABLE); /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_AWS9,ENABLE); /* Enable general interrupts */ enableInterrupts(); /*Start Conversion */ ADC1_StartConversion(); /* The LEDs state is changed in the interrupt routine */ while (1); Giải thích 1 chút nha : Code: /* Init GPIO for ADC1 */ GPIO_Init(GPIOE, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT); Ở đây ta sử dụng chanel 9 của ADC 1, chân ngõ vào tín hiệu của chanel 9 là chân PE6, vì vậy đoạn code trên được sử dụng để config cho chân PE6 làm ngõ vào tín hiệu cho khối ADC1. Code: /* De-Init ADC peripheral*/ ADC1_DeInit(); /* Init ADC2 peripheral */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_9, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL9, DISABLE);
  • 12. TinCanBan.Com – VanMau.Net Khởi động và thiết lập các thông số cho Channel 9 của ADC1. Cụ thể các thông số đó có ý nghĩa như thế nào. Các bạn có thể tham khảo trong bộ file stm8s_adc1.h của thư viện giao tiếp ngoại vi STM8s. Code: /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_AWS9,ENABLE); /* Enable general interrupts */ enableInterrupts(); Cho phép thực hiện ngắt với ADC1 channel 9. Code: /*Start Conversion */ ADC1_StartConversion(); Cho phép bộ ADC bắt đầu hoạt động. Trong file stm8s_it.c : Thực hiện edit code như sau : Code: extern uint16_t Conversion_Value; Khai báo biến , biến này đã khai báo ở file main, cho nên chúng ta có tiền tố extern phía trước. Code: INTERRUPT_HANDLER(ADC1_IRQHandler, 22) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ /* Get converted value */ Conversion_Value = ADC1_GetConversionValue(); ADC1_ClearITPendingBit(ADC1_IT_AWS9); } Nội dung đoạn code này là cập nhật giá trị của ADC vào biến Conversion_Value, và xóa cờ ngắt. Sau khi thực hiện các đoạn code trên chúng ta lưu lại và tiến hành dịch chương trình, nạp vào kit STM8S_Discovery để tiến hành debug,để có thể debug các bạn có thể làm 1 module nhỏ thay đổi được giá trị điện áp và kết nối nó vào kit. Sau đó cho chương trình chạy và debug.