probleme de recursion CCS
bonjour tout le monde ,
Voila je suis en terminal pour mon projet je dois réaliser toute la programmation d'un projecteur de lumières du type rvb-56 . Dans le projecteur il y a un micro qui permet lorsqu'il fonctionne de faire changer le jeux de lumières pour ce faire je dois donc réaliser une fonction réception son je travaille sur un pic 18F4550 sous CCS j'ai donc réaliser la fonction .Problème CCS n'arrête pas de me dire que j'ai un problème de récursion dans ma fonction principal. je vous en prie aidez moi.
cordialement speedygoncalesse.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#include "d:\Documents and Settings\Bureau\recep_son.h"
void main();
void lecture();
void affichage();
void init()
{
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);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
// TODO: USER CODE!!
}
void lecture()
{
int1 x;
do
{
x==input_state(PIN_B0);
}
while(x==0);
}
void affichage()
{
int8 compteur;
compteur++;
switch(compteur)
{
case (1):
do
{
output_toggle(PIN_D5);
}
while(delay_ms(300));
break;
case (2):
do
{
output_toggle(PIN_D6);
}
while(delay_ms(300));
break;
case (3):
do
{
output_toggle(PIN_D7);
}
while(delay_ms(300));
break;
case (4):
do
{
output_high(PIN_D5);
delay_ms(100);
output_low(PIN_D5);
output_high(PIN_D6);
delay_ms(100);
output_low(PIN_D6);
}
while(delay_ms(300));
break;
case (5):
do
{
output_high(PIN_D6);
delay_ms(100);
output_low(PIN_D6);
output_high(PIN_D7);
delay_ms(100);
output_low(PIN_D7);
}
while(delay_ms(300));
break;
case (6):
do
{
output_high(PIN_D5);
delay_ms(100);
output_low(PIN_D5);
output_high(PIN_D7);
delay_ms(100);
output_low(PIN_D7);
}
while(delay_ms(300));
break;
case (7):
do
{
output_toggle(PIN_D5);
delay_ms(100);
output_toggle(PIN_D6);
delay_ms(100);
output_toggle(PIN_D7);
delay_ms(100);
}
while(delay_ms(900));
break;
default:
if(compteur>8)
{
compteur=0;
lecture();
}
else
{
main();
}
break;
}
lecture();
}
void main()
{
init();
lecture();
affichage(); // voila ou il m'affiche mon problème de récursion
} |
NE PAS UTILISER LA RECURSION
Il est fortement deconseillé d utilisé les recursions
quand on programmes pour l embarqué .
Essaie autre chose . Et reposte Si ca ne fonctionne toujours pas .