jednoduchý program

T

timm02

Guest
ahoj .. jsem newbies zde.Já jsem v současné době dělá program k tomu výstupní frekvence na 2 podmínkou, jeden s podmínkou, 50kHz a další podmínky s 3-frekvence 5kHz, 100kHz a 1MHz.

Jsem naprogramován na 50kHz a postavena v obvodu, ale LED nebliká.im nejste jisti, zda program je špatné, nebo circuit.can může mi někdo pomoci ..

 
Můžete mi prosím napsat svůj problém trochu podrobněji, prosím.

jeho Zní to složitě / zmatené ..?

Děkuji

 
Zde je kód:
To je jediné frekvenci 5kHz

# Include <16f877a.h> / / načtení hlavičkový soubor pro PIC16F877A
# Include <stdlib.h>
# Include <math.h>

# Použití zpoždění (hodiny = 20000000) / / Frekvence oscilátoru = 20MHz,
/ / Systémové hodiny = Fosc / 4 = 5MHz, hodiny čas 0.2us
# Pojistky HS, NOPROTECT, NOWDT, NOLVP

# Byte PORTA = 5
# Byte PORTB = 6

int8 A1_pressed = FALSE;

void main ()
(
set_tris_a (0xFF); / / Set PORT jako vstupy
set_tris_b (0x00) / / set port B jako výstup
PORTB = 0; / / inicializace všech PORT B výstup na 0 voltů

output_low (PIN_B1); / / Set CCP1 výstup s nízkou

setup_ccp1 (CCP_PWM); / / configure CCP1 jako PWMwhile (true) / / Sama dgn while (1 == 1) - smyčka navždy
(

if (A1_pressed == TRUE) / / Sama dgn, zatímco (0 == A4_pressed)

(
output_high (PIN_B5); / / LED zapnout

setup_timer_2 (T2_DIV_BY_4, 249, 1); ///////////////////////////////////////// //////////
/ / 5 kHz / /
/ / Období = Fosc / (Fpwm * 4 * T2DIV) -1 / /
/ />> Setup_timer_2 (T2_DIV_BY_X, období, 1); / /
/ / / /
/ / Hodnota = (duty_cycle% * Fosc) / (Fpwm * 4 * T2DIV) / /
/ />> Set_pwm1_duty (hodnota); / /
/ / / /
////////////////////////////////////////////////// /

set_pwm1_duty (50); / / 50% pracovní cyklus na vývodu B1
delay_ms (2000); / / zpoždění 2 sekundy

)

jiný

(
output_low (PIN_B5); / / zhasne
delay_ms (1500); / / zpoždění pro 1,5 sekundy
)
)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top