2016-01-30
Ezzel a programmal az Analo-Digital Converter használatát ismerhetjük meg. Az ADC egységet egyszerűen 8 bite felbontásra állítottam. Mindig leírom, ha pontosabban kell mérnünk, akkor a mérő áramköröket is gondosabban kell kiviteleznünk, mondjuk 10 bites felbontáshoz 0,1% ellenállások tartoznak. A referenciának egyszerűen a tápfeszt választottam, vagyis ezt a feszültséget fogja az ADC 256 "részre felosztani". Talán helyessebb azt írni, hogy 1 osztás a tápfeszültség 256-od részének fog megfelelni. Néha célszerűbb lehet a belső 1,1V referencia feszültég vlasztása. Jól jöhet még az a megoldás is, hogy az ADC-vel mért értéket beírjuk az EEPROM-ba, majd a uC memóriájának tartalmát visszaolvasva megtudhatjuk mit mért.
/*******************************************************************************
* Author - Kiraly Tibor
* http://www.tkiraaly.hu
* Date - 2016.01.27.
* Chip - Atmel ATtiny13A
* Compiler - avr-gcc ( WinAVR)
*
* Meres ADC-vel, tarolas eepromba
*
********************************************************************************
* PonyProg Configuration and Security Bits (bepipalva):
*
* CKSEL1 -, CKSEL0 P - Internal Oscillator 9,6 MHz
* CKDIV8 P - Divide clock by 8
*
*******************************************************************************/
#define F_CPU 1,2 MHZ // orajel
#include "tkiraaly_attiny13a.h"
#include <util/delay.h>
int main( void)
{
ADC_8BIT; // 8 bit felbonas
ADC_VREF_AVCC; // a tap a referencia feszultseg
ADC_IN2; // 2. bemenet kivalasztasa
ADC_FREE_RUN; // folyamatos meres
_delay_ms( 500);
while( B_R( EECR, EEPE)); // varakozas elozo EEPROM muvelet befejezesere
EEARL= 1; // cim
EEDR= ADCH; // adat
B_1( EECR, EEMPE); // EEPROM irasa
B_1( EECR, EEPE);
for(;;){}
}
Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a programokat, miegymást összecsomagolva.