support avr architecture based on ATMega32
1. IAR project, see TencentOS-tiny\board\ATMega32\IAR, both 4.12 and 7.20 is supplied.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#ifndef __TIM_H_
|
||||
#define __TIM_H_
|
||||
|
||||
void Timer2_Init(uint32_t clock, uint32_t tick_per_second);
|
||||
void timer1(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -5,11 +5,13 @@
|
||||
|
||||
const uint8_t HEX_TABLE[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
|
||||
|
||||
int putchar(int c) {
|
||||
int putchar(int c)
|
||||
{
|
||||
if('\n' == (char)c) {
|
||||
USART_SendData8(USART1, '\r');
|
||||
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
|
||||
}
|
||||
|
||||
USART_SendData8(USART1, c);
|
||||
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
|
||||
return (c);
|
||||
@@ -17,95 +19,90 @@ int putchar(int c) {
|
||||
|
||||
void UART1_Send_Byte(uint8_t ucData)
|
||||
{
|
||||
USART_SendData8(USART1, ucData);
|
||||
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == 0)
|
||||
;
|
||||
USART_SendData8(USART1, ucData);
|
||||
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == 0)
|
||||
;
|
||||
}
|
||||
|
||||
//send string
|
||||
/* send string */
|
||||
void UART1_Send_String(char *Str)
|
||||
{
|
||||
|
||||
while (*Str != '\0') // "\0" meaning is the end of a string
|
||||
{
|
||||
UART1_Send_Byte(*Str);
|
||||
Str++;
|
||||
}
|
||||
while (*Str != '\0') { // "\0" meaning is the end of a string
|
||||
UART1_Send_Byte(*Str);
|
||||
Str++;
|
||||
}
|
||||
}
|
||||
|
||||
void UART1_Send_Dec(unsigned int num, unsigned char ucNumCount)
|
||||
{
|
||||
char disp_buffer1[2];
|
||||
char disp_buffer2[3];
|
||||
char disp_buffer3[4];
|
||||
char disp_buffer4[5];
|
||||
char disp_buffer5[6];
|
||||
char disp_buffer6[7];
|
||||
char disp_buffer1[2];
|
||||
char disp_buffer2[3];
|
||||
char disp_buffer3[4];
|
||||
char disp_buffer4[5];
|
||||
char disp_buffer5[6];
|
||||
char disp_buffer6[7];
|
||||
|
||||
switch (ucNumCount)
|
||||
{
|
||||
case 1:
|
||||
switch (ucNumCount)
|
||||
{
|
||||
case 1:
|
||||
disp_buffer1[0] = HEX_TABLE[num % 10];
|
||||
disp_buffer1[1] = 0;
|
||||
|
||||
disp_buffer1[0] = HEX_TABLE[num % 10];
|
||||
disp_buffer1[1] = 0;
|
||||
UART1_Send_String(disp_buffer1);
|
||||
break;
|
||||
|
||||
UART1_Send_String(disp_buffer1);
|
||||
break;
|
||||
case 2:
|
||||
disp_buffer2[0] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer2[1] = HEX_TABLE[num % 10];
|
||||
disp_buffer2[2] = 0;
|
||||
UART1_Send_String(disp_buffer2);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
disp_buffer2[0] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer2[1] = HEX_TABLE[num % 10];
|
||||
disp_buffer2[2] = 0;
|
||||
UART1_Send_String(disp_buffer2);
|
||||
break;
|
||||
case 3:
|
||||
disp_buffer3[0] = HEX_TABLE[num / 100];
|
||||
disp_buffer3[1] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer3[2] = HEX_TABLE[num % 10];
|
||||
disp_buffer3[3] = 0;
|
||||
case 3:
|
||||
disp_buffer3[0] = HEX_TABLE[num / 100];
|
||||
disp_buffer3[1] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer3[2] = HEX_TABLE[num % 10];
|
||||
disp_buffer3[3] = 0;
|
||||
|
||||
UART1_Send_String(disp_buffer3);
|
||||
break;
|
||||
UART1_Send_String(disp_buffer3);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
disp_buffer4[0] = HEX_TABLE[(num % 10000) / 1000];
|
||||
disp_buffer4[1] = HEX_TABLE[(num % 1000) / 100];
|
||||
disp_buffer4[2] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer4[3] = HEX_TABLE[num % 10];
|
||||
disp_buffer4[4] = 0;
|
||||
case 4:
|
||||
disp_buffer4[0] = HEX_TABLE[(num % 10000) / 1000];
|
||||
disp_buffer4[1] = HEX_TABLE[(num % 1000) / 100];
|
||||
disp_buffer4[2] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer4[3] = HEX_TABLE[num % 10];
|
||||
disp_buffer4[4] = 0;
|
||||
|
||||
UART1_Send_String(disp_buffer4);
|
||||
break;
|
||||
UART1_Send_String(disp_buffer4);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
case 5:
|
||||
disp_buffer5[0] = HEX_TABLE[(num % 100000) / 10000];
|
||||
disp_buffer5[1] = HEX_TABLE[(num % 10000) / 1000];
|
||||
disp_buffer5[2] = HEX_TABLE[(num % 1000) / 100];
|
||||
disp_buffer5[3] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer5[4] = HEX_TABLE[num % 10];
|
||||
disp_buffer5[5] = 0;
|
||||
|
||||
disp_buffer5[0] = HEX_TABLE[(num % 100000) / 10000];
|
||||
disp_buffer5[1] = HEX_TABLE[(num % 10000) / 1000];
|
||||
disp_buffer5[2] = HEX_TABLE[(num % 1000) / 100];
|
||||
disp_buffer5[3] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer5[4] = HEX_TABLE[num % 10];
|
||||
disp_buffer5[5] = 0;
|
||||
UART1_Send_String(disp_buffer5);
|
||||
break;
|
||||
|
||||
UART1_Send_String(disp_buffer5);
|
||||
break;
|
||||
case 6:
|
||||
disp_buffer6[0] = HEX_TABLE[num / 100000];
|
||||
disp_buffer6[1] = HEX_TABLE[(num % 100000) / 10000];
|
||||
disp_buffer6[2] = HEX_TABLE[(num % 10000) / 1000];
|
||||
disp_buffer6[3] = HEX_TABLE[(num % 1000) / 100];
|
||||
disp_buffer6[4] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer6[5] = HEX_TABLE[num % 10];
|
||||
disp_buffer6[6] = 0;
|
||||
|
||||
case 6:
|
||||
UART1_Send_String(disp_buffer6);
|
||||
break;
|
||||
|
||||
disp_buffer6[0] = HEX_TABLE[num / 100000];
|
||||
disp_buffer6[1] = HEX_TABLE[(num % 100000) / 10000];
|
||||
disp_buffer6[2] = HEX_TABLE[(num % 10000) / 1000];
|
||||
disp_buffer6[3] = HEX_TABLE[(num % 1000) / 100];
|
||||
disp_buffer6[4] = HEX_TABLE[(num % 100) / 10];
|
||||
disp_buffer6[5] = HEX_TABLE[num % 10];
|
||||
disp_buffer6[6] = 0;
|
||||
|
||||
UART1_Send_String(disp_buffer6);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UART1_Init(uint32_t uiBaudRate)
|
||||
@@ -128,3 +125,4 @@ void UART1_Init(uint32_t uiBaudRate)
|
||||
// enable UART1
|
||||
USART_Cmd(USART1, ENABLE);
|
||||
}
|
||||
|
||||
|
@@ -259,7 +259,7 @@
|
||||
<name>CCIncludePath2</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..\kernel\core\include</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\common\include</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8</state>
|
||||
<state>$PROJ_DIR$\..\..\BSP\include</state>
|
||||
<state>$PROJ_DIR$\..\..\LIB\inc</state>
|
||||
<state>$PROJ_DIR$\..\..\TOS-CONFIG</state>
|
||||
@@ -1646,16 +1646,16 @@
|
||||
<group>
|
||||
<name>arch</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>
|
||||
|
@@ -2160,16 +2160,16 @@
|
||||
<group>
|
||||
<name>arch</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>
|
||||
|
@@ -259,7 +259,7 @@
|
||||
<name>CCIncludePath2</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..\kernel\core\include</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\common\include</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8</state>
|
||||
<state>$PROJ_DIR$\..\..\BSP\include</state>
|
||||
<state>$PROJ_DIR$\..\..\LIB\inc</state>
|
||||
<state>$PROJ_DIR$\..\..\TOS-CONFIG</state>
|
||||
@@ -1648,16 +1648,16 @@
|
||||
<group>
|
||||
<name>arch</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>
|
||||
|
@@ -2160,16 +2160,16 @@
|
||||
<group>
|
||||
<name>arch</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>
|
||||
|
Reference in New Issue
Block a user