2013-01-31
Már régóta azt a szegény ATiny2313-at kínoztam. Tervbe volt véve, hogy az ATmega8-at is mukába fogom. Az ATiny2313-on már kigyúrtam magam, a C meg hordozható kód, pity-puty. Pity-Puty 2-3 éjszaka átkínlódása lett az eredmény, valamint két elprogamozott AVR, nem vagyok benne biztos, hogy tudom még őket reanimálni. No, ezeket azért bocsájtom előre, mert ennél a komplex kapcsolásnál, meg programnál azért bonyolultabbakat is elkövettem már. Most is nagyobb fabatkába kaptam bele, aminek a vége lett ez a vissza a gyökérhez. Nem szabad ezt a kis kapcsolást, és programot lebecsülni, az első lépés az ATmega8 földreterítésében. Én úgy szoktam debugg-olni - már ha kell :) -, hogy a programba a kritikus helyen beleírok mondjuk egy LED bekapcsolást. Ha a LED világít, már eljut a progi a kérdéses részhez. De másra is jó ez a kis kapcsolás. 1 sec (1Hz) periódus idő van beállítva. Mondjuk stopperral megmérve 10 periódus hosszát, megállapíthatjuk, hogy a uC-nek helyesen van-e beállítva az órajele?
Az egész pogram nyúlfarknyi, azt gondolom nem is igényel különösebb magyarázkodást. Az elején egy táblázatban összefoglaltam, a órjel beállítási lehetőségeket, mert én kezdetben jócskán belezavarodtam.
/*******************************************************************************
* Author - Kiraly Tibor
* http://www.tkiraaly.hu
* Date - 2013.01.31.
* Chip - Atmel ATmega8
* Compiler - avr-gcc ( WinAVR)
*
* LED ki/bekapcsilas
*
********************************************************************************
* PonyProg Configuration and Security Bits (bepipalva):
*
* CKSEL3, CKSEL2, CKSEL1, CKSEL0
* P P P P 0000 External Clock
*
* P P P - 0001 Calibrated Internal RC Oscillator 1MHz
* P P - P 0010 Calibrated Internal RC Oscillator 2MHz
* P P - - 0011 Calibrated Internal RC Oscillator 4MHz
* P - P P 0100 Calibrated Internal RC Oscillator 8MHz
*
* P - P - 0101 External RC Oscillator 0.1-0.9MHz
* P - - P 0110 External RC Oscillator 0.9-3MHz
* P - - - 0111 External RC Oscillator 3-8MHz
* - P P P 1000 External RC Oscillator 8MHz-
*
* - P P - 1001 External Low-frequency Crystal
*
* - P - P 1010 Ceramic resonator 0.4-0.9MHz
* - P - - 1011 Crystal Oscillator 0.4-0.9MHz
* - - P P 1100 Ceramic resonator 0.9-3MHz
* - - P - 1101 Crystal Oscillator 0.9-3MHz
* - - - P 1110 Ceramic resonator 3-8MHz
* - - - P 1110 Ceramic resonator 8MHz-, +CKOPT P
* - - - - 1111 Crystal Oscillator 3-8MHz
* - - - - 1111 Crystal Oscillator 8MHz-, +CKOPT P
*
* Calibrated Internal RC Oscillator
* SUT1 SUT0
* P P BOD enabled
* P - Fast rising power
* - P Slowly rising power
*
********************************************************************************
* PB0 (14) - LED - 470R
*
*******************************************************************************/
#define F_CPU 4000000 // orajel 4MHz
#include "tkiraaly_atmega8.h"
#include
#define LED 0
#define LED_ENABLE BS( DDRB, LED)
#define LED_BE BC( PORTB, LED)
#define LED_KI BS( PORTB, LED)
int main( void)
{
LED_ENABLE;
for(;;)
{
LED_BE;
_delay_ms( 500);
LED_KI;
_delay_ms( 500);
}
}
Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a hozzávalókat összecsomagolva.