AVR a C premenna definovana v bloku
Hynek Sladky
econf na centrum.cz
Pátek Únor 13 13:29:22 CET 2015
Ja bych to udelal takto:
{
uint16_t tmp_counter = 2048;
while (1) {
// ...
}
}
Hynek Sladky
Dne 13.2.2015 12:54, Michal Lukac napsal(a):
> Zdravim, mam takuto cast kodu:
> Tu premennu tmp_counter som chcel definovat vnutri toho bloku s tim ze
> bude platna len v tom bloku a
> na zaciatku sa inicializuje, kvoli setreniu miesta v pamati. Lenze to
> nefunguje prelozi sa to viz. nizsie, ako keby sa ta hodnota nemenila
> cize to vsetko potom kompilator ignoruje
> Ked tu definiciu dam pred to while tak to funguje. chcel som len aby
> zbytocne nezaberala miesto. Dalo by sa to aj s cyklom for v tomto
> pripade, ale ma zaujima ked by tam malo byt while
> Da sa to nejak inak urobit?
> dik.
> michal
> uint32_t tmp32 = 0;
> uint16_t tmp16;
> while(1){
> uint16_t tmp_counter = 2048;
> if (bit_is_clear(ADCSRA,ADSC)) {
> tmp16 = ADCL;
> tmp16 |= ((uint16_t)ADCH << 8);
> tmp32 += tmp16;
> tmp_counter--;
> AD_START;
> if (tmp_counter == 0) {
> tmp32 >>= 5;
> offset_I = tmp32;
> utoa((unsigned int)tmp32,s_out,10);
> lcd_gotoxy(0,0);
> lcd_puts(s_out);
> _delay_ms(3000);
> lcd_clrscr();
> break;
> }
> }
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150213/191e54cc/attachment.html>
Další informace o konferenci Hw-list