123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- /***************************************************************************//**
- * @file Main.c
- * @brief Implementation of the program's main function.
- * @author DNechita
- ********************************************************************************
- * Copyright 2012(c) Analog Devices, Inc.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * - Neither the name of Analog Devices, Inc. nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * - The use of this software may or may not infringe the patent rights
- * of one or more patent holders. This license does not release you
- * from the requirement that you obtain separate licenses from these
- * patent holders to use this software.
- * - Use of the software either in source or binary form, must be run
- * on or directly connected to an Analog Devices Inc. component.
- *
- * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ********************************************************************************
- * SVN Revision: 499
- *******************************************************************************/
- /******************************************************************************/
- /* Include Files */
- /******************************************************************************/
- #include "YRDKRL78G13.h" // YRDKRX62N definitions.
- #include "ST7579.h" // ST7579 definitions.
- #include "AD7793.h" // AD7793 definitions.
- /******************************************************************************/
- /* Option Bytes */
- /******************************************************************************/
- #pragma location = "OPTBYTE"
- __root const uint8_t opbyte0 = 0x00U;
- #pragma location = "OPTBYTE"
- __root const uint8_t opbyte1 = 0xFFU;
- #pragma location = "OPTBYTE"
- __root const uint8_t opbyte2 = 0xE8U;
- #pragma location = "OPTBYTE"
- __root const uint8_t opbyte3 = 0x04U;
- /******************************************************************************/
- /* Security ID */
- /******************************************************************************/
- #pragma location = "SECUID"
- __root const uint8_t secuid[10] =
- {0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U};
- /******************************************************************************/
- /* Variables Declarations */
- /******************************************************************************/
- const unsigned char adiLogo [2 * 19] =
- { 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x07, 0x07,
- 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC0,
- 0xC0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC,
- 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF }; // ADI Logo.
- unsigned long value = 0; // value read from the ADC
- /***************************************************************************//**
- * @brief Creates a delay of seconds.
- *
- * @param mSeconds - time in miliseconds.
- *
- * @return None.
- *******************************************************************************/
- void DelayMs(unsigned long mSeconds)
- {
- unsigned long time = 0;
-
- R_TAU0_Channel0_Start();
- while(time < mSeconds)
- {
- if(TMIF00 == 1)
- {
- time++;
- TMIF00 = 0;
- }
- }
- R_TAU0_Channel0_Stop();
- }
- /***************************************************************************//**
- * @brief Main function.
- *
- * @param None.
- *
- * @return None.
- *******************************************************************************/
- void main(void)
- {
- YRDKRL78G13_Init();
- ST7579_Init();
- ST7579_Image(2,0,adiLogo,19,16);
- ST7579_String(2,21,"ANALOG");
- ST7579_String(3,21,"DEVICES");
- ST7579_String(4,0,"wiki.analog.com");
- DelayMs(2000);
- ST7579_Clear();
- ST7579_Image(0,0,adiLogo,19,16);
- ST7579_String(0,22,"ST7579 OK");
- /* Reset AD7793 to bring the SPI interface in a known state */
- AD7793_Reset();
- if(AD7793_Init())
- {
- ST7579_String(1,22,"AD7793 OK");
- }
- else
- {
- ST7579_String(1,22,"AD7793 Err");
- }
- /* AD7793 setup */
- AD7793_SetGain(AD7793_GAIN_1); // set gain to 1
- AD7793_SetChannel(AD7793_CH_AIN1P_AIN1M); // use AIN1(+) - AIN1(-)
- AD7793_SetIntReference(AD7793_REFSEL_INT); // select internal 1.17V reference
- AD7793_Calibrate(AD7793_MODE_CAL_INT_ZERO,
- AD7793_CH_AIN1P_AIN1M); // Internal Zero-Scale Calibration
- /* A 20 samples average is displayed. */
- ST7579_String(3,0,"AVG:");
- value = AD7793_ContinuousReadAvg(20);
- ST7579_HexNumber(3,70,value,4);
- while(1)
- {
- value = AD7793_SingleConversion();
- ST7579_String(5,2,"AIN1(+)-AIN1(-)");
- ST7579_String(4,0,"Data:");
- ST7579_HexNumber(4,75,value,4);
- if(value > 0x800000)
- {
- value -= 0x800000;
- value = ((value * 1170) >> 15);
- ST7579_String(6,10,"+");
- }
- else
- {
- value = 0x800000 - value;
- value = ((value * 1170) >> 15);
- ST7579_String(6,10,"-");
- }
- ST7579_Number(6,55,value,5);
- ST7579_String(6,65,"mV");
- DelayMs(250);
- }
- }
|