2016-01-30
Ez egy abszolút pergésmentes kapcsoló megoldás, például remegő kezű rakéta indítóknak :). Ez egy fizikai R-S (egész pontosan NR-NS, mert hogy negált bemenetei vannak) tároló megvalósítása. A kapcsoló nyelve vagy az R, vagy az S bemenetre kapcsolódik, a tároló az első érintésre átbillen, és így nem kerül figyelembevételre a nyelv ugrálása az érintkezőkön. A bemeneteket illik ellenellással felhúzni, hogy amikor szabadon lógnak, akkor is határozott magas szinten legyenek. A megoldás érdekessége, hogy a mikrovezérlő belső felhúzó ellenállásait használjuk, így megspórolunk két külső ellenállást. A belső felhúzó ellenállásokat úgy lehet aktiválni, hogy az MCUCR regiszter PUD bitjét nem állítjuk 1-be, vagyis alap helyzetben nincs letiltva. A megfelelő port lábat a DDRB regiszterben 1-gyel nem jelöljük ki kimenetnek, vagyis alaphelyzetben az összes láb bemenet. Ezután amelyik bemenő lábon aktiválni akarjuk a felhúzó ellenállást, a PORTB regiszter annak megfelelő bitjét 1-be kell állítani. A programban azért nem látjuk a felsorolt regiszterek birizgálását, mert részben alaphelyzetben hagyjuk őket, részben "tkiraaly_attiny13a.h"-ban definiált makrókkal kezelem őket.
/*******************************************************************************
* Author - Kiraly Tibor
* http://www.tkiraaly.hu
* Date - 2016.01.30.
* Chip - Atmel ATtiny13A
* Compiler - avr-gcc ( WinAVR)
*
* Pergesmentes kapcsolo
*
********************************************************************************
* 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)
{
PB0_1; // LED kikapcsolasa
PB0_OUT; // LED
PB3_1; // belso felhuzo ellenallasok bekapcsolasa
PB4_1;
for(;;)
{
if( !PB3_R) PB0_1; // Reset
if( !PB4_R) PB0_0; // Set
}
}
Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a programokat, miegymást összecsomagolva.