Anonymní profil morganzd – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil morganzd – Programujte.comAnonymní profil morganzd – Programujte.com

 

Příspěvky odeslané z IP adresy 89.103.48.–

Mikrokontroléry › preruseni - zakmity
9. 4. 2010   #126662

Zde je kod. Na konci metody incStep uz chybi jen zobrazeni cisla na displej, pro zkraceni veci okolo LCD vynechavam.
Jazyckovy kontakt je jednou nohou na INT0, druhou na zemi. Pri priblizeni magnetu se sepne.
Jeste doplnim, ze je to odnekud obslehnute...

#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>

#ifndef F_CPU
#define F_CPU 1000000L
#endif

#include <avr/delay.h>

#define sbi(port, bit) (port) |= (1 << (bit))
#define cbi(port, bit) (port) &= ~(1 << (bit))

static volatile uint8_t xxint0 = 0x00;


void incStep() {
if ( xxint0 >= 0xFF )
xxint0 = 0x00;
else
xxint0++;
}


SIGNAL(SIG_INTERRUPT0) {
if ( !(PIND & (1 << PD2)) ) {
_delay_ms(5);
if ( PIND & (1 << PD2) ) {
_delay_ms(5);
incStep();
}
}
}


int main(void) {
_delay_ms(100);

DDRD &= ~( 1 << PD2 );
PORTD |= ( 1 << PB2 );
_delay_ms(5);

GICR |= 1 << INT0;
cbi(MCUCR, 0);
cbi(MCUCR, 1);
sei();

while ( 1 ) {
}
}

morganzd
Mikrokontroléry › preruseni - zakmity
8. 4. 2010   #126593

Jeste dodam ze to delam na atmega8 a zachytavam INT0.

morganzd
Mikrokontroléry › preruseni - zakmity
8. 4. 2010   #126591

Zdravim vas.
Prosim zkusene o radu s osetrenim zakmitu jazyckoveho rele. Existujici navody na netu se tykaji bouhuzel jen osetreni klasickych tlacitek, aspon tak jsem nasel. Nevim si rady jak se vyrovnat se zakmity jazyckoveho kontaktu, u ktereho je potreba dodrzet rozliseni 30ms mezi dvema sepnutimi.
Dekuji za radu a prip. ukazku v C.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý