o: ActiveSupport::Cache::Entry :@compressedF:@value"®;"¨;
| irmrak.c | ||
|---|---|---|
| 48 | 48 |
{
|
| 49 | 49 |
output_B(0); // vypnuti motoru |
| 50 | 50 |
printf("E"); // Hlasime chybu
|
| 51 |
err=0;
|
|
| 51 |
reset_cpu();
|
|
| 52 | 52 |
} |
| 53 | 53 |
}; |
| 54 | 54 |
delay_ms(500); // cas na ustaleni trubky |
| ... | ... | |
| 58 | 58 |
// --- Najeti na vychozi polohu dole --- |
| 59 | 59 |
void nula() |
| 60 | 60 |
{
|
| 61 |
port=0b10100000; // vychozi nastaveni fazi pro rizeni motoru
|
|
| 61 |
port=0b10010000; // vychozi nastaveni fazi pro rizeni motoru
|
|
| 62 | 62 |
output_B(port); |
| 63 |
j=0; // smer dolu
|
|
| 63 |
j=1; // smer dolu
|
|
| 64 | 64 |
delay_ms(500); |
| 65 | 65 |
} |
| 66 | 66 |
|
| ... | ... | |
| 68 | 68 |
//------------------------------------------------ |
| 69 | 69 |
void main() |
| 70 | 70 |
{
|
| 71 |
setup_oscillator(OSC_8MHZ|OSC_INTRC); // 8 MHz interni RC oscilator |
|
| 72 |
|
|
| 73 | 71 |
setup_adc_ports(NO_ANALOGS|VSS_VDD); |
| 74 | 72 |
setup_adc(ADC_OFF); |
| 75 |
setup_spi(FALSE);
|
|
| 76 |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
|
|
| 73 |
setup_spi(SPI_SS_DISABLED);
|
|
| 74 |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
|
| 77 | 75 |
setup_timer_1(T1_DISABLED); |
| 76 |
setup_timer_2(T2_DISABLED,0,1); |
|
| 78 | 77 |
setup_ccp1(CCP_OFF); |
| 79 |
setup_comparator(NC_NC_NC_NC); |
|
| 80 |
setup_vref(FALSE); |
|
| 78 |
setup_comparator(NC_NC_NC_NC); |
|
| 79 |
setup_vref(FALSE); |
|
| 80 |
setup_oscillator(OSC_8MHZ|OSC_INTRC); |
|
| 81 | 81 |
|
| 82 | 82 |
output_B(0); // vypnuti motoru a topeni |
| 83 | 83 |
set_tris_B(0b00000111); // faze a topeni jako vystupy |
| 84 | 84 |
|
| 85 |
|
|
| 85 |
nula(); |
|
| 86 |
dolu(); // otoc trubku do vychozi pozice dolu |
|
| 87 |
|
|
| 86 | 88 |
while(true) |
| 87 | 89 |
{
|
| 88 |
nula(); |
|
| 89 |
dolu(); // otoc trubku do vychozi pozice dolu |
|
| 90 |
|
|
| 91 | 90 |
CREN=0; CREN=1; // Reinitialise USART |
| 92 | 91 |
|
| 93 | 92 |
while(!kbhit()) |
| ... | ... | |
| 107 | 106 |
|
| 108 | 107 |
krok(18); |
| 109 | 108 |
printf("A"); // mereni teploty 45? nad obzorem
|
| 110 |
delay_ms(200);
|
|
| 109 |
delay_ms(300);
|
|
| 111 | 110 |
krok(7); |
| 112 | 111 |
printf("B"); // mereni teploty v zenitu
|
| 113 |
delay_ms(200);
|
|
| 112 |
delay_ms(300);
|
|
| 114 | 113 |
krok(7); |
| 115 | 114 |
printf("C"); // mereni teploty 45? nad obzorem na druhou stranu
|
| 116 |
delay_ms(200);
|
|
| 115 |
delay_ms(300);
|
|
| 117 | 116 |
|
| 118 | 117 |
j++; // reverz |
| 119 | 118 |
dolu(); |
| ... | ... | |
| 124 | 123 |
|
| 125 | 124 |
if ('i'==uhel) {printf("I"); continue;} // Predani prikazu pro Info
|
| 126 | 125 |
if ('h'==uhel) {printf("H"); continue;} // Predani prikazu pro Topeni
|
| 127 |
if ('c'==uhel) {printf("C"); continue;} // Predani prikazu pro vypnuti topeni
|
|
| 126 |
if ('f'==uhel) {printf("F"); continue;} // Predani prikazu pro vypnuti topeni
|
|
| 128 | 127 |
if ('x'==uhel) // Zjisteni verze FW
|
| 129 | 128 |
{
|
| 130 | 129 |
printf("Mrakomer - Motor V%s (C) 2006 KAKL\n\r", VER);
|
| 131 |
printf("%s\n\r", REV);
|
|
| 130 |
printf("%s\r\n", REV);
|
|
| 132 | 131 |
} |
| 133 | 132 |
|
| 134 | 133 |
if ((uhel>='0') && (uhel<='@')) // mereni v pozadovanem uhlu [0..;]=(0..11) |
| ... | ... | |
| 147 | 146 |
krok(2); |
| 148 | 147 |
}; |
| 149 | 148 |
printf("S");
|
| 150 |
delay_ms(200);
|
|
| 149 |
delay_ms(300);
|
|
| 151 | 150 |
|
| 152 | 151 |
j++; // reverz |
| 153 | 152 |
dolu(); |