Rychloměr a počítadlo kilometrů combo obvodu pomoci.

D

david90

Guest
Tady je můj finální kód (pro mě

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrální" border="0" />

) Tento kód je pro WinAVR kompilátor GCC, a to je pro ATMEL MCU at90s2313.

Kód:# Include <avr/io.h>

# Include <avr/interrupt.h>

# Include <avr/signal.h>neplatné zpoždění (void);

neplatné display7seg (void);těkavé uint16_t luštěniny = 0, km / h = 0, mph_result = 0;

int hun_mi, ten_mi, one_mi, hun_mph, ten_mph, one_mph;

const char segment_table [10] =

(

0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x2, 0x78, 0, 0x10

);int main (void)

(

DDRB = 0xFF; / / set PORTB jako výstup

DDRD = 0x77;

TCCR0 = 0x03, / / odložený startTCNT1H = 0xC9;

TCNT1L = 0x85;

TCCR1B = 0x5, / / clk/1024 TCCR1B = 0x5, / / clk/1024

TIMSK = 0x80;MCUCR = 0x08;

SREG = 0x80;

GIMSK = 0x80;

while (1) / / Forever

(

display7seg ();

)

return 0;

)neplatné zpoždění (void) / / Vytvořit zpoždění 65 ms při 4 MHz

(

TCNT0 = 0x7F;

while (! (TIFR & 0x02));

/ / Čekat na timer0 přetečení vlajkou, aby bylo nastavení

TIFR = 0x02; / / Clear přetečení vlajky

)

neplatné display7seg (void)

(hun_mi = (impulsy) / 100;

ten_mi = ((impulsů)% 100) / 10;

one_mi = ((impulsů)% 100)% 10;hun_mph = (mph_result) / 100;

ten_mph = ((mph_result)% 100) / 10;

one_mph = ((mph_result)% 100)% 10;PORTB = segment_table [hun_mi];

PORTD = 0x7B;

zpoždění ();

PORTB = segment_table [ten_mi];

PORTD = 0x7D;

zpoždění ();

PORTB = segment_table [one_mi];

PORTD = 0x7E;

zpoždění ();PORTB = segment_table] [hun_mph;

PORTD = 0x6F;

zpoždění ();

PORTB = segment_table] [ten_mph;

PORTD = 0x5F;

zpoždění ();

PORTB = segment_table] [one_mph;

PORTD = 0x3F;

zpoždění ();

)Interrupt (SIG_INTERRUPT1)

(

pokud ( pulsy == 999)

(

pulsy = 0;

)

mph ;

)
Interrupt (SIG_OVERFLOW1)

(

mph_result = mph *. 08863;

mph = 0;

TCNT1H = 0xC9;

TCNT1L = 0x61;

)

 
K tomu dojde, protože zážehových obvodu, zkuste dát okruhu daleko zapalovacích svíček, a pokud možno dát svůj obvod v dobré dirigent box, s dobrou zem.Pokud se kabel displeje je oddělen z vašeho používání štít palubě kabel ....Možná, pokud přidáte pulldown rezistory s malou hodnotu na vstupu může pomoci i vám ...

leomecma

 
Je to elektrický skútr není plyn.

Myslel jsem, že byl hluk, takže jsem přidal SZP mezi moje a - napájení a jiný u MCU přerušit pin a to z mého okruhu mnohem stabilnější.

Mám jiný problém.Koloběžka má bezpečnostní funkce, kde, pokud to trvalo tvrdý hit, zadní kolo dostane mokré nebo zadní kolo je nad zemí, na koloběžce se vypne.Když jsem se snažil proniknout do photointerrupt, z nějakého důvodu na koloběžce se vypne, když se dostane do určité rychlosti.Myslel jsem, MCU přerušení pin musí být náklad dolů photointerrupter a tahem dolů na zem nebo tak něco.

Update: k mému překvapení na koloběžce se vypne, i když se dotknu holý drát není připojen k nic jiného photointerrupter výstup.Může mi někdo vysvětlit, co se děje?Nemyslím si, že jsem zkrat cokoliv.

 
Jaké jsou některé způsoby, jak mohu mít em vlny vyrábí motory z mého okruhu?

 

Welcome to EDABoard.com

Sponsor

Back
Top