blob: 9d5286d84c381391084d0cc7f628840785b4e85e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include "ch559.h"
#include <compiler.h>
#include <stdint.h>
#ifndef FREQ_SYS
#define FREQ_SYS 12000000 // System frequency is 12MHz
#endif
static inline void delay() {
uint32_t i;
for (i = 0; i < (120000UL); i++) {
}
__asm__("nop");
}
void initUART0(unsigned long baud, int alt) {
unsigned long x;
if (alt) {
PORT_CFG |= bP0_OC;
P0_DIR |= bTXD_;
P0_PU |= bTXD_ | bRXD_;
PIN_FUNC |= bUART0_PIN_X;
}
SM0 = 0;
SM1 = 1;
SM2 = 0;
REN = 1;
// RCLK = 0;
// TCLK = 0;
PCON |= SMOD;
x = (((unsigned long)FREQ_SYS / 8) / baud + 1) / 2;
TMOD = TMOD & ~bT1_GATE & ~bT1_CT & ~MASK_T1_MOD | bT1_M1;
T2MOD = T2MOD | bTMR_CLK | bT1_CLK;
TH1 = (256 - x) & 255;
TR1 = 1;
TI = 1;
}
void main() {
P4_DIR = 0b00001100;
P4_OUT = 0b00000100;
initUART0(9600, 1);
while (1) {
delay();
P4_OUT ^= 0b00001100;
SBUF = 'Z';
while (!TI)
;
TI = 1;
}
}
|