📄 functions.lst
字号:
###############################################################################
# #
# 09/May/2011 01:07:33 #
# IAR Atmel AVR C/C++ Compiler V5.11B/W32, Evaluation Version #
# Copyright 1996-2008 IAR Systems. All rights reserved. #
# #
# Source file = F:\Lcsoft\Hardware\AVR\MMA7361\functions.c #
# Command line = F:\Lcsoft\Hardware\AVR\MMA7361\functions.c --cpu=m168 #
# -ms -o F:\Lcsoft\Hardware\AVR\MMA7361\Debug\Obj\ -lCN #
# F:\Lcsoft\Hardware\AVR\MMA7361\Debug\List\ -lB #
# F:\Lcsoft\Hardware\AVR\MMA7361\Debug\List\ #
# --initializers_in_flash -z2 --no_cse --no_inline #
# --no_code_motion --no_cross_call --no_clustering #
# --no_tbaa --debug -e -I "C:\Program Files (x86)\IAR #
# Systems\Embedded Workbench 5.0 Evaluation\avr\INC\" -I #
# "C:\Program Files (x86)\IAR Systems\Embedded Workbench #
# 5.0 Evaluation\avr\INC\CLIB\" --eeprom_size 512 #
# List file = F:\Lcsoft\Hardware\AVR\MMA7361\Debug\List\functions.lst #
# Object file = F:\Lcsoft\Hardware\AVR\MMA7361\Debug\Obj\functions.r90 #
# #
# #
###############################################################################
F:\Lcsoft\Hardware\AVR\MMA7361\functions.c
1 void Timers_Init(void)
2 {
3 // Timer0
4 TCCR0A = 0xC3;
5 TCCR0B = 0x01;
6 OCR0A = 0x00;
7 TIMSK0 = 0x00;
8 // Timer1
9 TCCR1A = 0x00; //0x81;
10 TCCR1B = 0x09;
11 TCCR1C = 0x00;
12 OCR1A = 0x0000;
13 TIMSK1 = 0x00;
14 // Timer2
15 TCCR2A=0x00; //Disable code comparators
16 TCCR2B=0x06; //Choose clock frequency
17 TIMSK2=0x01; //Set interrupt mask
18 ASSR=0x00; //Clear asinchronous mode control register
19 }
20
21 void IO_Ports_Init(void)
22 {
23 PORTB=0x00; //Set out pins to 0
24 DDRB=0x3F; //PortB(6,7) are inputs
25
26 PORTC=0x00; //Set out pins to 0
27 DDRC=0xF8; //PortC(0..2) are analog inputs
28
29 PORTD=0x00; //Set out pins to 0
30 DDRD=0xFE; //All pins are outputs
31
32 PORTD|=0x10;
33 }
34
35 void ADC_Init(void)
36 {
37 DIDR0=0x1F; //Disable digital outputs
38 ACSR=0x80; //Disable analog comparator
39 ADCSRA=0x83; //0; //Enable ADC on maximum clock frequency
40 ADCSRB=0x00; //Set free running mode for ADC
41 ADMUX=0x42; //Initial position, connect to Pot
42 }
43
44 void MMA7361_Init(void)
45 {
46 PORTC|=MMA7361_EN; //Enable MMA7361
47 }
48
49 unsigned int Get_ADC (unsigned char Channel, unsigned char Sample)
50 {
51 unsigned int Result;
52 ADMUX=Channel_Tbl[Channel];
53 for (Temp1=0; Temp1<50; Temp1++); //Delay
54 SumReg = 0; //Preparing to start ADC
55 SampCnt = Sample; //Set a number of samples
56 ADC_Done=0; //Clear flag
57 ADCSRA = 0xCb; //8; //Start ADC
58
59 while (ADC_Done == 0){};
60
61 Result=SumReg/Sample;
62 return Result;
63
64 }
65
66 void SW_UART_Tx(unsigned char Data) //BaudRate=115200, when system clock is 4M
67 {
68 unsigned int TxBuf,i;
69 unsigned char j;
70 TxBuf=Data;
71 TxBuf=(TxBuf<<1)|0x0200;
72 for(i=0x01;i!=0x400;)
73 {
74 if((TxBuf&i)==0)
75 PORTD&=0xfd; //PD1=0
76 else
77 PORTD|=0x02; //PD1=1
78 for(j=0;j<10;j++);
79 i=i<<1;
80 }
81 }
82
83 void Show_Hex(unsigned int Hex)
84 {
85 unsigned char buf,i;
86 for(i=16;i>0;)
87 {
88 i-=4;
89 buf=(Hex>>i)&0x0f;
90 if(buf>9)
91 buf+=7;
92 SW_UART_Tx(buf+0x30);
93 }
94 }
95
96 void Put_Axis (unsigned int Data)
97 {
98 unsigned char buf[4],i;
99 buf[0]=(Data/1000);
100 buf[1]=(Data%1000/100);
101 buf[2]=(Data%1000%100/10);
102 buf[3]=(Data%1000%100%10);
103
104 for(i=0;i<4;i++)
105 SW_UART_Tx(buf[i]+0x30);
106
107 }
108
109 void UART_Init (void)
110 {
111 UCSR0B=0x00;
112 UCSR0A=0x02;
113 UCSR0C=0x06;
114 UBRR0L=0x67;
115 UBRR0H=0x00;
116 UCSR0B=0x18;
117 }
118
119 void UART_Tx (unsigned char Data)
120 {
121 while(!(UCSR0A&(1<<5)));
122 UDR0=Data;
123 }
124
125 unsigned char UART_Rx (void)
126 {
127 while(!(UCSR0A&(1<<7)));
128 return UDR0;
129 }
Errors: 43
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -