Généré signal carré pic
Résolu
flolarajasse
Messages postés
115
Statut
Membre
-
flolarajasse Messages postés 115 Statut Membre -
flolarajasse Messages postés 115 Statut Membre -
Bonjour,
Je souhaite généré un signal carré grâce à mon PIC 18F4550 à une certaine fréquence souhaitée.Comment faire?
Pouvez vous m'aidez svp?
Merci
Flo
Je souhaite généré un signal carré grâce à mon PIC 18F4550 à une certaine fréquence souhaitée.Comment faire?
Pouvez vous m'aidez svp?
Merci
Flo
Configuration: Windows XP Firefox 3.5.7
13 réponses
-
Salut,
cela ne serait pas plutot:
while(TRUE)
{
PORTA1=1;
delay_ms(100);
PORTA1=0;
delay_ms(100);
}
@+ -
c bon j'ai trouvé.j'ai tout simplement fait :
void main(void)
{
while (TRUE)
{
usb_task();
usb_debug_task();
output_high(PIN_B0);
delay_us(200);
output_low(PIN_B0);
delay_us(200);
}
}
et c'est bon sa marche très bien!!
merci du coup de main ;D -
Tu le programmes pour qu'il te renvoie des suites de 0 et de 1 sur une sortie numérique.
Pour ce qui est de la fréquence, base toi sur ton quartz.
Et puis, ton pic, tu le programmes comment? -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
pourtant je fais du C depuis un petit moment, mais là je galère un peu.peut-être la fatigue ;-)
-
Franchement je pense que ça suffit (sauf si tu as d'autre choses a faire, il y aura besoin d'une interruption)
while(1){
PORTA1(1)
wait(t)
PORTA1(0)
wait(t)
}
ou t est la demie période de T avec f=1/T.
Et PORTA1 une de tes sorties numérique
Pardon pour la syntaxe, ça fait des années que je n'ai pas fait de microC... -
-
Salut,
sinon utilise les interruption timer....
dans l'interruption tu fais ton changement d'etat du bit en sortie voulu (par exemple le 1er bit du portA est en sortie)
LATAbits.LATA1^=1;
Bon courage!!
@+ -
-
en fait ce serait juste cela?
#define PORTA1 PIN_A1
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
while(TRUE)
{
PORTA1==(1);
delay_ms(100);
PORTA1==(0);
delay_ms(100);
}
}
merci d'avance -
Ce serai plus jolie de le faire dans une interruption, comme le dit chuka, mais ça devrai marcher.
-
-
sa n'a pas l'air de marcher, sa m'affiche "code has no effect", en clair sa ne fait rien!!:'(