AVR a C premenna definovana v bloku
Jan Smrz
jan.smrz na email.cz
Pátek Únor 13 13:06:34 CET 2015
Promenna tmp_counter se vam inicializuje pri kazdem pruchodu while cyklu na
2048. Aby vam to fungovalo, musi se inicializovat jen jednou a to pred vstupem
to cyklu, tedy pred while.
Kompilator tmp_count ignoruje, protoze hodnota tmp_count v podmince vzdy 2047.
J.S.
On 02/13/2015 12:54 PM, Michal Lukac wrote:
> 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;
> }
> }
> 245: if (bit_is_clear(ADCSRA,ADSC)) {
> 0000015E SBIC 0x06,6 Skip if bit in I/O register cleared
> 0000015F RJMP PC-0x0001 Relative jump
> 246: tmp16 = ADCL;
> 00000160 IN R24,0x04 In from I/O location
> 247: tmp16 |= ((uint16_t)ADCH << 8);
> 00000161 IN R24,0x05 In from I/O location
> 250: AD_START;
> 00000162 SBI 0x06,6 Set bit in I/O register
> 00000163 RJMP PC-0x0005 Relative jump
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150213/eb62f6cb/attachment.html>
Další informace o konferenci Hw-list