⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functions.lst

📁 MMA7361加速度倾角模块
💻 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 + -