hi vyžadovat pomoc PWM kódy

X

xundeadx

Guest
hi i am pomocí p18f4520 mikročipovými pic s picdem 2 plus demo deska
v současné době mého programu jsem si je nastavit potenciometrem @ RA0 zkontrolovat moje napětí.při více než 4,5 volt 4 LED blikat, mezi 4,5-4 4 vedly světla nahoru, 4-3v 3 vedl světle až 3-2V 2 vedla rozsvítit, 2-1V 1 vedl rozsvítit, méně pak 1V 1 vedl blikající

Teď chci integrovat program s PWM umožňující ovládání jasu na LED.

Níže je můj kód
ps: Jsem nováček @ pic a c programování ...plz použití více laikovi pojem o explainning thx!

Kód:# include <p18f4520.h>

# include <delays.h>

# include <stdio.h>

# include <xlcd.h># pragma config WDT = OFFvoid main (void)

(

unsigned char výsledek;

ADCON0 = ADCON0 ^ 0x01;

TRISB = 0;

PORTB = 0;

while (1)

(

ADCON0 = ADCON0 ^ 0x02;

while (ADCON0 & 0x02) ()

result = ADRESH;if (výsledek> 0xE5)

(

PORTB = 0x0F;

Delay1KTCYx (100);

PORTB = 0x00;

Delay1KTCYx (100);

)

else if (result <= 0xE5 & & výsledku> = 0x99)

(

PORTB = 0x0F;

Delay1KTCYx (100);

)

else if (result <0x99 & & výsledku> = 0x66)

(

PORTB = 0x07;

Delay1KTCYx (100);

)

else if (result <0x66 & & výsledku> = 0x33)

(

PORTB = 0x03;

Delay1KTCYx (100);

)

else if (result <0x33 & & výsledku> = 0x19)

(

PORTB = 0x01;

Delay1KTCYx (100);

)

else if (result <0x19)

(

PORTB = 0x01;

Delay1KTCYx (100);

PORTB = 0x00;

Delay1KTCYx (100);

)

jiné

(

PORTB = 0x00;

)

)

)
 
nazdar,

Zdvořile zobrazit toto téma, které zahrnuje ovládání jasu LED.Doufám, že vám může pomoci.

ftopic264740.htmlPozdravy

 
hi thx za odpověď.ale je kód ASM nejsou C., kde je moje číslo je v C..

 
Kód:

# include <p18f4520.h>

# include <delays.h>

# include <stdio.h>

/ / # include <xlcd.h>

# include <pwm.h>

# include <timers.h>

# pragma config WDT = OFF / / vypnutí časovače hodinky pes

# pragma config LVP = OFF / / vypnutí nízkého napětí programování

# pragma config OSC = ES / / config OSC = vysokorychlostnívoid main (void)

(

unsigned char výsledek;

ADCON0 = ADCON0 ^ 0x01, / / zapnout ADC

/ / TRISA = 0b00000001;

TRISB = 0, / / b set port jako výstupní

PORTB = 0; / / jasné přístavu b

TRISC = 0; / / set port c jako výstup

OpenTimer2 (TIMER_INT_ON & T2_PS_1_16 & T2_POST_1_1); / / nastavit časovač na prescale 1:1, postscale 1:1

/ / PR2 = 64;

OpenPWM1 (0xff); / / zase vlastní PWMwhile (1)

(

ADCON0 = ADCON0 ^ 0x02, / / ADC konverze

/ / Delay1KTCYx (1);

while (ADCON0 & 0x02 ){}// smyčky convension Do konce

/ / Delay1KTCYx (1);

result = ADRESH; / / sklad ADC výsledekif (výsledek> 0xE5) / / výsledek> 4,5 voltů

(

PORTB = 0x0F;

Delay1KTCYx (100);

PORTB = 0x00;

Delay1KTCYx (100);

)

else if (result <= 0xE5 & & výsledku> = 0x99) / / vést mezi 4,5 až 3 volt

(

SetDCPWM1 (50);PORTB = PORTC; / / PORTCbits.RC2; / / 0x0F;

Delay1KTCYx (100);)

else if (result <0x99 & & výsledku> = 0x66) / / výsledek mezi 3. až 2 volt

(/ / SetDCPWM1 (100);

PORTB = 0x07;

Delay1KTCYx (100);)

else if (result <0x66 & & výsledku> = 0x33) / / vést mezi 2 - 1 volt

(

PORTB = 0x03;

Delay1KTCYx (100);

)

else if (result <0x33 & & výsledku> = 0x19) / / vést mezi 1 až 0,5 voltů

(

PORTB = 0x01;

Delay1KTCYx (100);

)

else if (result <0x19) / / méně než 0.5 volt

(

PORTB = 0x01;

Delay1KTCYx (100);

PORTB = 0x00;

Delay1KTCYx (100);

)

jiné

(

PORTB = 0x00;

)

)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top