2016-01-30
Amióta elkészültem a dobókockámmal, a környékbeli pókok tanulmányútra járnak az asztalomhoz :). A program alaphelyzetben folyamatosan számol magában 1..6-ig. Ha megnyomjuk a gomot, megnezi hol tart, és aszerint kigyújtja a LED-eket. Hogy ne peregjen, fél másodpercig nem is foglalkozik többet velünk. Érdekesség, hogy a gombot folyamatosan nyomva tartva végig léptet 1..6-ig, ilyenkor lehet ellenőrizni, hogy az összes LED világit. Tovább is lehet bonyolítani a programot, kikapcsolással, energia takarékossággal, elhalványulással ... stb.
/*******************************************************************************
* Author - Kiraly Tibor
* http://www.tkiraaly.hu
* Date - 2016.01.30.
* Chip - Atmel ATtiny13A
* Compiler - avr-gcc ( WinAVR)
*
* Dobokocka
*
********************************************************************************
* 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)
{
U8 n= 0;
PB4_1; // felhuzo ellenallas be
PB0_OUT; // LED-ek
PB1_OUT; // 2 1
PB2_OUT; // 3 0 3
PB3_OUT; // 1 2
PB0_0; // kozepso LED vilagit bekapcsolaskor
PB1_1;
PB2_1;
PB3_1;
for(;;)
{
n++; // veletlenszeru szam 1..6
if( n == 7) n= 1;
if( !PB4_R)
{
PB0_1; // LED-ek kikapcsolasa
PB1_1;
PB2_1;
PB3_1;
if( n% 2) PB0_0; // 1, 3, 5
if( n != 1) PB1_0; // 2, 3, 4, 5, 6
if( n > 3) PB2_0; // 4, 5, 6
if( n == 6) PB3_0; // 6
_delay_ms( 500); // perges elkerulese
}
}
}
Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a programokat, miegymást összecsomagolva.