183,42 → 183,61 |
/* |
* Vlakno pro ovladani odpalovaci sekvence |
*/ |
static WORKING_AREA(waThread_odpal, 128); |
static msg_t Thread_odpal(void *arg) { |
uint8_t stav = 0; // rika, ve ktere fazi je odpalovani |
static WORKING_AREA(waThread_odpal, 128); |
static msg_t Thread_odpal(void *arg) { |
uint8_t stav = 0; // rika, ve ktere fazi je odpalovani |
uint8_t odpal_povolen = 0; |
(void)arg; |
chRegSetThreadName("Odpal_vlakno"); |
while (TRUE) |
{ |
//msg_t msg; |
msg_t msg; |
|
/* Waiting for the IRQ to happen.*/ |
chSysLock(); |
tp_odpal = chThdSelf(); |
chSchGoSleepS(THD_STATE_SUSPENDED); |
//msg = chThdSelf()->p_u.rdymsg; /* Retrieving the message, optional.*/ |
msg = chThdSelf()->p_u.rdymsg; /* Retrieving the message, optional.*/ |
chSysUnlock(); |
/* Perform processing here.*/ |
switch (stav) |
if(msg == 1) |
{ |
case 0: sdWrite(&SD1,"0",2); |
break; |
case 1: sdWrite(&SD1,"1",2); |
break; |
case 2: sdWrite(&SD1,"2",2); |
break; |
case 3: sdWrite(&SD1,"3",2); |
break; |
case 4: sdWrite(&SD1,"4",2); |
break; |
default: sdWrite(&SD1,"konec",6); |
stav = 0; |
break; |
odpal_povolen = 1; |
} |
|
stav++; |
} |
if (odpal_povolen == 1) |
{ |
switch (stav) |
{ |
case 0: |
sdWrite(&SD1,"0",2); |
gptStartOneShot(&GPTD2,1000); |
break; |
case 1: |
sdWrite(&SD1,"1",2); |
gptStartOneShot(&GPTD2,1500); |
break; |
case 2: |
sdWrite(&SD1,"2",2); |
gptStartOneShot(&GPTD2,2000); |
break; |
case 3: |
sdWrite(&SD1,"3",2); |
gptStartOneShot(&GPTD2,3000); |
break; |
case 4: |
sdWrite(&SD1,"4",2); |
gptStartOneShot(&GPTD2,5000); |
break; |
default: |
sdWrite(&SD1,"konec",6); //posledni krok |
odpal_povolen = 0; |
stav = 0; |
break; |
} |
stav++; |
} |
} |
} |
|
|
/* |
317,8 → 336,16 |
{ |
//int8_t porov; |
//porov = strcmp(prikaz,"ahoj"); |
if(strcmp(prikaz,"ahoj") == 0) |
if(strcmp(prikaz,"odpal") == 0) |
{ |
/* Wakes up the thread.*/ |
chSysLockFromIsr(); |
if (tp_odpal != NULL) { |
tp_odpal->p_u.rdymsg = (msg_t)1; /* odpal povolen*/ |
chSchReadyI(tp_odpal); |
tp_odpal = NULL; |
} |
chSysUnlockFromIsr(); |
palTogglePad(GPIOB, GPIOB_LED4); |
} |
else if (strcmp(prikaz,"zdar") == 0) |
359,8 → 386,8 |
* PA9 and PA10 are routed to USART1. |
*/ |
sdStart(&SD1, NULL); |
palSetPadMode(GPIOA, 9, PAL_MODE_ALTERNATE(7)); |
palSetPadMode(GPIOA, 10, PAL_MODE_ALTERNATE(7)); |
palSetPadMode(GPIOA, 9, PAL_MODE_ALTERNATE(7)); //TX |
palSetPadMode(GPIOA, 10, PAL_MODE_ALTERNATE(7)); //RX |
|
//gptObjectInit(&GPTD2); |
/* |
439,7 → 466,6 |
* pressed the test procedure is launched with output on the serial |
* driver 1. |
*/ |
gptStartContinuous(&GPTD2,1000); |
while (TRUE) { |
|
sdRead(&SD1,znaky,1); |