WinAVR

Apr 05, 2004 23 Replies

Hi All!



HÁÞÉÎÁÀ ÒÁÂÏÔÁÔØ Ó ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁÍÉ AVR. ÷ ËÁÞÅÓÔ×Å ÓÒÅÄÙ ÒÁÚÒÁÂÏÔËÉ ×ÙÂÒÁÌ WinAVR 20030913 É ÓÉÍÕÌÑÔÏÒ ÉÚ AVRStudio.



óÔÏÌËÎÕÌÓÑ ÓÏ ÓÔÒÁÎÎÙÍ "ÇÌÀËÏÍ" ËÏÍÐÉÌÑÔÏÒÁ. ëÔÏ ÎÉÂÕÄÄØ ÍÏÖÅÔ ÐÒÏËÏÍÍÅÎÔÉÒÏ×ÁÔØ:
ðÉÛÕ:

void delay1(){ unsigned int i; for(i=0xFF;i!=0;i--); }



void delay2(){ unsigned int i; for(i=0x8FFF;i!=0;i--); }



ðÏÌÕÞÁÀ:


20: for(i=0xFF;i!=0;i--);



+00000041: EF8F SER R24 Load immediate
+00000042: E090 LDI R25,0x00 Load immediate
+00000043: 970F SBIW R24,0x0F Subtract immediate from word
+00000044: F7F1 BRNE -0x02 Branch if status flag cleared
21: }
+00000045: 9508 RET Subroutine return @00000046: delay2
25: for(i=0x8FFF;i!=0;i--);
+00000046: EF8F SER R24 Load immediate
+00000047: E89F LDI R25,0x8F Load immediate
+00000048: 9701 SBIW R24,0x01 Subtract immediate from word
+00000049: F7F1 BRNE -0x02 Branch if status flag cleared
26: }
+0000004A: 9508 RET Subroutine return
÷ ÐÏÄÐÒÏÇÒÁÍÍÅ delay1 ÃÉËÌ ×ÙÐÏÌÎÑÅÔÓÑ ÔÏÌØËÏ 17 ÒÁÚ. delay2 - ×ÓÅ × ÐÏÒÑÄËÅ.
éÎÔÅÒÅÓÕÅÔ ÍÎÏÇÏ ÌÉ "ÇÌÀËÏ×" × ËÏÍÐÉÌÑÔÏÒÅ É ÍÏÖÎÏ ÌÉ ÉÍ ÐÏÌØÚÏ×ÁÔØÓÑ × ÐÒÁËÔÉÞÅÓËÏÊ ÒÁÂÏÔÅ?
óÅÒÇÅÊ á×ÄÀÛÉÎ.

Hi Alex!

ðÒÏÂÏ×ÁÌ, ÔÏ ÖÅ ÓÁÍÏÅ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, óÅÒÇÅÊ á×ÄÀÛÉÎ.
ðÒÉ×ÅÔ Sergej!

05 Apr 04 10:49, Sergej S. Avdushin ÐÉÓÁÌ All:

SA> óÔÏÌËÎÕÌÓÑ ÓÏ ÓÔÒÁÎÎÙÍ "ÇÌÀËÏÍ" ËÏÍÐÉÌÑÔÏÒÁ. SA> ëÔÏ ÎÉÂÕÄÄØ ÍÏÖÅÔ ÐÒÏËÏÍÍÅÎÔÉÒÏ×ÁÔØ:

SA> ðÉÛÕ:

SA> void delay1(){ SA> unsigned int i; SA> for(i=0xFF;i!=0;i--); SA> }

SA> void delay2(){ SA> unsigned int i; SA> for(i=0x8FFF;i!=0;i--); SA> }

SA> ðÏÌÕÞÁÀ:

[×ÙËÕÛÅÎÏ]

SA> ÷ ÐÏÄÐÒÏÇÒÁÍÍÅ delay1 ÃÉËÌ ×ÙÐÏÌÎÑÅÔÓÑ ÔÏÌØËÏ 17 ÒÁÚ. SA> delay2 - ×ÓÅ × ÐÏÒÑÄËÅ.

ïÐÔÉÍÉÚÁÃÉÀ ×ÙËÌÀÞÉÔØ ÎÅ ÚÁÂÙÌ (ÅÓÌÉ ÏÎÁ × Ô×ÏÅÍ ËÏÍÐÉÌÑÔÏÒÅ ×ÙËÌÀÞÁÅÔÓÑ)? ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... óÌÅÐÏÊ ðØÀ, çÌÕÈÏÊ åÍ...
ðÒÉ×ÅÔ Sergej!

05 Apr 04 14:26, Sergej S. Avdushin ÐÉÓÁÌ All:

SA> ðÒÏÂÏ×ÁÌ, ÔÏ ÖÅ ÓÁÍÏÅ.

ðÒÉ ÏÔÓÕÔÓÔ×ÉÉ volatile × ÏÐÒÅÄÅÌÅÎÉÑÈ Ô×ÏÉÈ ÐÅÒÅÍÅÎÎÙÈ ×ÒÑÄ ÌÉ ÍÏÖÎÏ ÕÐÒÅËÁÔØ ËÏÍÐÉÌÑÔÏÒ × ÔÏÍ, ÞÔÏ ÏÎ ÓÏËÒÁÔÉÌ ÎÅ ÄÁÀÝÉÊ ÜÆÆÕËÔÁ ËÏÄ. éíèï ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ×ÓÅ-ÔÁËÉ ÎÅÌØÚÑ ÎÁÚÙ×ÁÔØ ÇÌÀËÏÍ, ÅÓÌÉ × ÄÏËÕÍÅÎÔÁÃÉÉ ÎÅ ÎÁÐÉÓÁÎÏ ÏÂÒÁÔÎÏÇÏ... ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... åÓÌÉ ÄÏÌÇÏ ÄÕÍÁÔØ ÏÄÎÉ É ÔÅ ÖÅ ÍÙÓÌÉ, ÏÎÉ ÓÔÁÎÏ×ÑÔÓÑ ÇÒÑÚÎÙÍÉ.
5-Apr-04 09:49 Sergej S. Avdushin wrote to All:

SA> void delay1(){ SA> unsigned int i; SA> for(i=0xFF;i!=0;i--); SA> } Компилятор просто помог выполнить тебе досчёт от 0xFF до 0 побыстрее :-) Так как "внешне" единственная работа цикла - это декрементировать i до нуля.

Можно объявить i как volatile, но это дело заведёт её на стеке со всеми вытекающими. Можно в теле цикла поставить __asm__ __volatile__ ("nop");

SA> Интересует много ли "глюков" в компиляторе и можно ли им пользоваться SA> в практической работе? 1) Это был не глюк. Это фича такая. 2) Ну так пользуюсь же.

wbr,

Hi Oleksandr!

ðÒÏÂÏ×ÁÌ, ÐÏÌÕÞÉÌ ÁÓÓÅÍÂÌÅÒÎÙÊ ÌÉÓÔÉÎÇ ÎÁ ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉÃÁÈ. :)
ôÁË ÐÏÌÕÞÁÅÔÓÑ ÏÞÅÎØ ÈÏÒÏÛÏ.
÷ÏÔ ×ÏÔ. ðÒÏ ÜÔÏ É ÂÙÌ ×ÏÐÒÏÓ: ÍÏÖÎÏ ÌÉ ÉÍ ÐÏÌØÚÏ×ÁÔØÓÑ, ÉÌÉ ÉÇÒÕÛËÁ. ÷ÓÑËÉÊ ÒÁÚ, ËÏÇÄÁ ÎÁÞÉÎÁÅÛØ ÐÏÌØÚÏ×ÁÔØÓÑ ÎÏ×ÙÍ ÓÒÅÄÓÔ×ÏÍ, ÉÚ ÎÅÇÏ ÌÅÚÅÔ ×ÓÑËÁÑ ÅÒÕÎÄÁ. ðÏÔÏÍ ÐÒÉÔÅÒÁÅÔÓÑ É "ÇÌÀËÉ" ÐÒÏÐÁÄÁÀÔ (ÐÞÔÉ). óÐÁÓÉÂÏ! óÅÒÇÅÊ.
ðÒÉ×ÅÔ Sergej!

06 Apr 04 11:29, Sergej S. Avdushin ÐÉÓÁÌ All:

SA> ÷ÏÔ ×ÏÔ. ðÒÏ ÜÔÏ É ÂÙÌ ×ÏÐÒÏÓ: ÍÏÖÎÏ ÌÉ ÉÍ ÐÏÌØÚÏ×ÁÔØÓÑ, ÉÌÉ ÉÇÒÕÛËÁ. SA> ÷ÓÑËÉÊ ÒÁÚ, ËÏÇÄÁ ÎÁÞÉÎÁÅÛØ ÐÏÌØÚÏ×ÁÔØÓÑ ÎÏ×ÙÍ ÓÒÅÄÓÔ×ÏÍ, ÉÚ ÎÅÇÏ SA> ÌÅÚÅÔ ×ÓÑËÁÑ ÅÒÕÎÄÁ. ðÏÔÏÍ ÐÒÉÔÅÒÁÅÔÓÑ É "ÇÌÀËÉ" ÐÒÏÐÁÄÁÀÔ (ÐÞÔÉ).

ñ ÔÅÂÑ ÎÁÕÞÕ. ÷ÓÑËÉÊ ÒÁÚ ÐÅÒÅÄ ÔÅÍ ËÁË ÎÁÞÁÔØ ÐÏÌØÚÏ×ÁÔØÓÑ ÎÏ×ÙÍ ÓÒÅÄÓÔ×ÏÍ, ÉÚÕÞÉ ÄÏËÕÍÅÎÔÁÃÉÀ ÎÁ ÎÅÇÏ. ôÏÇÄÁ "ÇÌÀËÉ" É ÎÅ ×ÏÚÎÉËÎÕÔ. :) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... þÕÄÏ-ÊÏÇÕÒÔ âÉÏ. þÅÍÐÉÏÎ ÓÒÅÄÉ ËÁËÁÏ.
ðÒÉ×ÅÔ Sergej!

05 Apr 04 14:26, Sergej S. Avdushin ÐÉÓÁÌ All:

SA> ðÒÏÂÏ×ÁÌ, ÔÏ ÖÅ ÓÁÍÏÅ.

ñ ÔÏÌØËÏ ÓÅÊÞÁÓ ÓÏÏÂÒÁÚÉÌ, ÞÔÏ ÓÁÂÖ - ÜÔÏ gcc. ðÒÁ×ÉÌØÎÏ? ôÏÇÄÁ ÓÍÏÔÒÉÍ, ËÁËÏÊ ËÏÄ ÇÅÎÅÒÉÔÓÑ ÉÚ ÔÏ×ÅÇÏ ÐÒÉÍÅÒÁ ÂÅÚ ÏÐÔÉÍÉÚÁÃÉÉ:

============================== /* prologue end (size=10) */ ldi r24,lo8(255) ldi r25,hi8(255) std Y+2,r25 std Y+1,r24 .L2: ldd r24,Y+1 ldd r25,Y+2 sbiw r24,0 brne .L4 rjmp .L1 .L4: ldd r24,Y+1 ldd r25,Y+2 sbiw r24,1 std Y+2,r25 std Y+1,r24 rjmp .L2 .L1: /* epilogue: frame size=2 */ ===============================

á ×ÏÔ ÜÔÏ Ó -O:

=============================== /* prologue end (size=0) */ ldi r24,lo8(255) ldi r25,hi8(255) .L6: sbiw r24,1 brne .L6 /* epilogue: frame size=0 */ ===============================

á ×ÏÔ ÜÔÏ Ó -O2, -O3 É -Os:

=============================== /* prologue end (size=0) */ ldi r24,lo8(255) ldi r25,hi8(255) .L6: sbiw r24,15 brne .L6 /* epilogue: frame size=0 */ .................... /* prologue end (size=0) */ ldi r24,lo8(-28673) ldi r25,hi8(-28673) .L44: sbiw r24,1 brne .L44 /* epilogue: frame size=0 */ ===============================

ôÁË ÞÔÏ "HÅ ×ÅÒÀ" (Ó) ÞÔÏ "ðÒÏÂÏ×ÁÌ, ÔÏ ÖÅ ÓÁÍÏÅ".

HÁ ÓÁÍÏÍ ÖÅ ÄÅÌÅ ÔÅÂÅ ÎÕÖÎÁ ÏÐÃÉÑ -fno-strength-reduce, ËÏÔÏÒÁÑ ËÁË ÒÁÚ ÚÁÐÒÅÝÁÅÔ ÏÐÔÉÍÉÚÁÔÏÒÕ ÓÏËÒÁÝÁÔØ ËÏÌÉÞÅÓÔ×Ï ÐÒÏÈÏÄÏ× ÃÉËÌÁ.

äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÒÁÚÇÏ×ÏÒ ÂÙÌ ÐÒÅÄÍÅÔÎÙÍ: alx2% avr-gcc --version avr-gcc (GCC) 3.3.1 20030707 (prerelease) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ñ ÕÄÁÌÀ Ô×ÏÀ ÖÁÖÄÕ. âÅÚ ×ÏÚÍÏÖÎÏÓÔÉ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ.

Hi Alex!

<.......... ÇÒÙÚØ ÄÌÉÉÉÉÎÎÙÊ ÌÉÓÔÉÎÇ.....> éÓÐÏÌØÚÕÀ

avr-gcc (GCC) 3.3.2 Copyright (C) 2003 Free Software Foundation, Inc.

÷ makefile: # Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = 0 éÓÈÏÄÎÉË: void xxxx(){ unsigned int i; for(i=0x5FF;i!=0;i--); } òÅÚÕÌØÔÁÔ ÉÚ ÓÉÍÕÌÑÔÏÒÁ AVR

@00000041: xxxx

- ---- C:\WinAVR\UART1/UART1.c ----------------------------------------------------

- ------------------

24: for(i=0x5FF;i!=0;i--) +00000041: EF8F SER R24 Load immediate +00000042: E095 LDI R25,0x05 Load immediate +00000043: 9705 SBIW R24,0x05 Subtract immediate from word +00000044: F7F1 BRNE -0x02 Branch if status flag cleared 27: } +00000045: 9508 RET Subroutine return

óÐÁÓÉÂÏ! óÅÒÇÅÊ á×ÄÀÛÉÎ.
ðÒÉ×ÅÔ Sergej!

06 Apr 04 16:19, Sergej S. Avdushin ÐÉÓÁÌ All:

SA> éÓÐÏÌØÚÕÀ

SA> avr-gcc (GCC) 3.3.2

SA> ÷ makefile: SA> # Optimization level, can be [0, 1, 2, 3, s]. 0 turns off SA> # (Note: 3 is not always the best optimization level. See avr-libc SA> OPT = 0

SA> éÓÈÏÄÎÉË: SA> void xxxx(){ SA> unsigned int i; SA> for(i=0x5FF;i!=0;i--); SA> }

SA> òÅÚÕÌØÔÁÔ ÉÚ ÓÉÍÕÌÑÔÏÒÁ AVR

[ ÔÏÖÅ ÐÏËÕÛÁÎÏ ] ñ ÖÅ ÎÅ ÔÅÌÅÐÁÔ, ÔÙ ÐÏËÁÖÉ, Ó ËÁËÉÍÉ ÐÁÒÁÍÅÔÒÁÍÉ ËÏÍÐÉÌÑÔÏÒ ×ÙÚÙ×ÁÅÔÓÑ. ïÔËÕÄÁ ÍÎÅ ÚÎÁÔØ, ÞÔÏ ÔÁÍ Õ ÔÅÂÑ × Makefile ÅÝÅ ÎÁÐÉÓÁÎÏ... é ÐÏËÁÖÉ ÒÅÚÕÌØÔÁÔ ×ÙÐÏÌÎÅÎÉÑ avr-gcc -O0 -S test.c ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ðÉÒÏÖÏË ×ÁÒÅÎÙÊ Ó ×ÁÒÅÎØÅÍ.
úÄÒÁ×ÓÔ×ÕÊ, Sergej!

Monday April 05 2004 10:49, you (2:5020/52) wrote to All:

SA> ðÉÛÕ:

SA> void delay1(){ SA> unsigned int i; SA> for(i=0xFF;i!=0;i--);

÷ÓÔÁר × ÔÅÌÏ ÃÉËÌÁ NOP É ÂÕÄÅÔ ÔÅÂÅ ÝÁÓÔØÅ...

asm volatile ("nop");

SA> }

SA> É ÍÏÖÎÏ ÌÉ ÉÍ ÐÏÌØÚÏ×ÁÔØÓÑ × ÐÒÁËÔÉÞÅÓËÏÊ ÒÁÂÏÔÅ?

äÁ. ó ÎÁÈ×ÁÌÉ×ÁÅÍÙÍ IAR ó Ñ ÎÅ pÁÂÏÔÁÌ, ÎÏ image craft, × ÓpÁ×ÎÅÎÉÉ Ó gcc, ÈÕÄÛÉÊ ×ÁpÉÁÎÔ. üÔÏ ÍÏÅ ÓËpÏÍÎÏÅ ÍÎÅÎÉÅ, ËÏÔÏpÏÅ ÍÏÖÅÔ ÎÅ ÓÏ×ÐÁÄÁÔØ ÓÏ ÓËpÏÍÎÙÍ ÍÎÅÎÉÅÍ ÐÏÞÔÅÎÎÏÊ ÐÕÂÌÉËÉ.

p.s. åÓÌÉ ÎÕÖÎÁ ÔÏÞÎÁÑ ÚÁÄÅpÖËÁ - ÍÁËpÏÓ ÕÄÏÂÎÅÅ.

something.h

----------- void _delay (unsigned int __count) { asm volatile ( "1: sbiw %0,1" "\n\t" "brne 1b": "=w" (__count): "0" (__count) ); }

something.c

----------- ... // Fclk=16MHz _delay (1); // 250 ÎÓ ÚÁÄÅpÖËÁ _delay (4); // 1 ÍËÓ ÚÁÄÅpÖËÁ ...

Alex

Thu, 08 Apr 2004 02:07:34 +0400 Alex Gavrikov wrote to Sergej S. Avdushin:

[...]

AG> äÁ. ó ÎÁÈ×ÁÌÉ×ÁÅÍÙÍ IAR ó Ñ ÎÅ pÁÂÏÔÁÌ, ÎÏ image craft, × ÓpÁ×ÎÅÎÉÉ Ó gcc, AG> ÈÕÄÛÉÊ ×ÁpÉÁÎÔ. üÔÏ ÍÏÅ ÓËpÏÍÎÏÅ ÍÎÅÎÉÅ, ËÏÔÏpÏÅ ÍÏÖÅÔ ÎÅ ÓÏ×ÐÁÄÁÔØ ÓÏ AG> ÓËpÏÍÎÙÍ ÍÎÅÎÉÅÍ ÐÏÞÔÅÎÎÏÊ ÐÕÂÌÉËÉ.

AG> p.s. åÓÌÉ ÎÕÖÎÁ ÔÏÞÎÁÑ ÚÁÄÅpÖËÁ - ÍÁËpÏÓ ÕÄÏÂÎÅÅ.

÷ éáòÅ ÅÓÔØ ÓÐÅÃÉÁÌØÎÁÑ ×ÓÔÒÏÅÎÎÁÑ ÆÕÎËÃÉÑ __delay_cycles(unsigned long int), ÐÒÉ ×ÙÚÏ×Å ËÏÔÏÒÏÊ ËÏÍÐÉÌÑÔÏÒ ÇÅÎÅÒÉÔ ËÏÄ (ÃÉËÌ É ÎÏÐÙ), ÔÏÞÎÏ ÆÏÒÍÉÒÕÀÝÉÊ ÔÒÅÂÕÅÍÕÀ ÚÁÄÅÒÖËÕ. åÄÉÎÓÔ×ÅÎÎÏÅ ÏÇÒÁÎÉÞÅÎÉÅ ÔÁÍ, ÜÔÏ ÔÏ, ÞÔÏ ÁÒÇÕÍÅÎÔ ÏÇÒÁÎÉÞÅÎ Ó×ÅÒÈÕ ÎÅËÉÍ ÞÉÓÌÏÍ ÐÏÒÑÄËÁ ÔÏ ÌÉ 20000, ÔÏ ÌÉ 200000. îÏ ÜÔÏ ÎÅ ÓÏÚÄÁÅÔ ÐÒÏÂÌÅÍ. :)

Hi Alex!

åÓÌÉ ÄÅÌÁÔØ ÔÁË, ÔÏ ÐÏÌÕÞÁÅÔÓÑ ÔÏ ÖÅ ÓÁÍÏÅ, (ÄÌÉÎÎÙÊ ÌÉÓÔÉÎÇ), ËÁË ÔÙ ÐÒÉ×ÏÄÉÌ × ÐÒÅÄÉÄÕÝÅÍ ÐÉÓØÍÅ. ñ (ÏÛÉÂÏÞÎÏ) ÐÏÌÁÇÁÌ, ÞÔÏ ÓÔÒÏÞËÉ × makefile
ÄÅÌÁÀÔ ÔÏ ÖÅ ÓÁÍÏ, ÞÔÏ É ÕËÁÚÁÎÎÙÊ ÔÏÂÏÀ ËÌÀÞ × ËÏÍÍÁÎÄÎÏÊ ÓÔÒÏËÅ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, ÓÐÁÓÉÂÏ, óÅÒÇÅÊ á×ÄÀÛÉÎ.
úÄÒÁ×ÓÔ×ÕÊ, Harry!

Thursday April 08 2004 09:36, you (2:5020/400) wrote to me:

AG>> p.s. åÓÌÉ ÎÕÖÎÁ ÔÏÞÎÁÑ ÚÁÄÅpÖËÁ - ÍÁËpÏÓ ÕÄÏÂÎÅÅ. HZ> ÷ éáòÅ ÅÓÔØ ÓÐÅÃÉÁÌØÎÁÑ ×ÓÔÒÏÅÎÎÁÑ ÆÕÎËÃÉÑ HZ> __delay_cycles(unsigned long int),

÷ gcc libc ÅÓÔØ ÔÏÖÅ: delay (uint8_t mS); // × ÍÉÌÌÉÓÅËÕÎÄÁÈ

Alex

Hello, Alex! You wrote to Harry Zhurov on Sun, 11 Apr 2004 02:43:41 +0400:

AG>>> p.s. åÓÌÉ ÎÕÖÎÁ ÔÏÞÎÁÑ ÚÁÄÅpÖËÁ - ÍÁËpÏÓ ÕÄÏÂÎÅÅ. HZ>> ÷ éáòÅ ÅÓÔØ ÓÐÅÃÉÁÌØÎÁÑ ×ÓÔÒÏÅÎÎÁÑ ÆÕÎËÃÉÑ HZ>> __delay_cycles(unsigned long int),

AG> ÷ gcc libc ÅÓÔØ ÔÏÖÅ: AG> delay (uint8_t mS); // × ÍÉÌÌÉÓÅËÕÎÄÁÈ

ðÏÄÏÂÎÙÅ ÆÕÎËÃÉÉ _ÏÂÙÞÎÏ_ ÏÂÅÓÐÅÞÉ×ÁÀÔ ÚÁÄÅÒÖËÕ Ó ÔÏÞÎÏÓÔØÀ ÄÏ Ë×ÁÎÔÁ ÐÌÁÎÉÒÏ×ÝÉËÁ (ÄÅÓÑÔËÉ ÍÓ).

With best regards, Alexander Derazhne.

Sun, 11 Apr 2004 02:43:41 +0400 Alex Gavrikov wrote to Harry Zhurov:

AG>>> p.s. åÓÌÉ ÎÕÖÎÁ ÔÏÞÎÁÑ ÚÁÄÅpÖËÁ - ÍÁËpÏÓ ÕÄÏÂÎÅÅ. HZ>> ÷ éáòÅ ÅÓÔØ ÓÐÅÃÉÁÌØÎÁÑ ×ÓÔÒÏÅÎÎÁÑ ÆÕÎËÃÉÑ HZ>> __delay_cycles(unsigned long int),

AG> ÷ gcc libc ÅÓÔØ ÔÏÖÅ: AG> delay (uint8_t mS); // × ÍÉÌÌÉÓÅËÕÎÄÁÈ

ï! á ËÁË ÜÔÏ ÏÎÏ Ë ÍÉÌÌÉÓÅËÕÎÄÁÍ ÐÒÉ×ÑÚÙ×ÁÅÔÓÑ? ïÔËÕÄÁ ËÏÍÐÉÌÑÔÏÒ ÚÎÁÅÔ ÓËÏÌØËÏ ÔÁËÔÏ× ÍÉÌÌÉÓÅËÕÎÄÁ?
ðÒÉ×ÅÔ Harry!

12 Apr 04 09:13, Harry Zhurov ÐÉÓÁÌ Alex Gavrikov:

AG>> ÷ gcc libc ÅÓÔØ ÔÏÖÅ: AG>> delay (uint8_t mS); // × ÍÉÌÌÉÓÅËÕÎÄÁÈ

HZ> ï! á ËÁË ÜÔÏ ÏÎÏ Ë ÍÉÌÌÉÓÅËÕÎÄÁÍ ÐÒÉ×ÑÚÙ×ÁÅÔÓÑ? ïÔËÕÄÁ ËÏÍÐÉÌÑÔÏÒ HZ> ÚÎÁÅÔ ÓËÏÌØËÏ ÔÁËÔÏ× ÍÉÌÌÉÓÅËÕÎÄÁ?

÷ avr-libc ÅÓÔØ Ä×Á ÍÁËÒÏÓÁ:

/* 8-bit count, 3 cycles/loop */ static __inline__ void _delay_loop_1(uint8_t __count) { asm volatile ( "1: dec %0" "\n\t" "brne 1b" : "=r" (__count) : "0" (__count) ); }

/* 16-bit count, 4 cycles/loop */ static __inline__ void _delay_loop_2(uint16_t __count) { asm volatile ( "1: sbiw %0,1" "\n\t" "brne 1b" : "=w" (__count) : "0" (__count) ); }

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... HÅ ÍÅÓÔÏ ÐÏÒÔÉÔ ÞÅÌÏ×ÅËÁ, Á ÞÅÌÏ×ÅË ÍÅÓÔÏ.

Mon, 12 Apr 2004 13:02:14 +0400 Alex Mogilnikov wrote to Harry Zhurov:

AM> 12 Apr 04 09:13, Harry Zhurov ÐÉÓÁÌ Alex Gavrikov:

AG>>> ÷ gcc libc ÅÓÔØ ÔÏÖÅ: AG>>> delay (uint8_t mS); // × ÍÉÌÌÉÓÅËÕÎÄÁÈ

HZ>> ï! á ËÁË ÜÔÏ ÏÎÏ Ë ÍÉÌÌÉÓÅËÕÎÄÁÍ ÐÒÉ×ÑÚÙ×ÁÅÔÓÑ? ïÔËÕÄÁ ËÏÍÐÉÌÑÔÏÒ HZ>> ÚÎÁÅÔ ÓËÏÌØËÏ ÔÁËÔÏ× ÍÉÌÌÉÓÅËÕÎÄÁ?

AM> ÷ avr-libc ÅÓÔØ Ä×Á ÍÁËÒÏÓÁ:

AM> /* 8-bit count, 3 cycles/loop */ AM> static __inline__ void AM> _delay_loop_1(uint8_t __count) AM> { AM> asm volatile ( AM> "1: dec %0" "\n\t" AM> "brne 1b" AM> : "=r" (__count) AM> : "0" (__count) AM> ); AM> }

AM> /* 16-bit count, 4 cycles/loop */ AM> static __inline__ void AM> _delay_loop_2(uint16_t __count) AM> { AM> asm volatile ( AM> "1: sbiw %0,1" "\n\t" AM> "brne 1b" AM> : "=w" (__count) AM> : "0" (__count) AM> ); AM> }

îÕ, Á ÍÉÌÌÉÓÅËÕÎÄÙ-ÔÏ ÔÕÔ ÇÄÅ?
ðÒÉ×ÅÔ Harry!

12 Apr 04 17:25, Harry Zhurov ÐÉÓÁÌ Alex Mogilnikov:

AM>> ÷ avr-libc ÅÓÔØ Ä×Á ÍÁËÒÏÓÁ:

HZ> HÕ, Á ÍÉÌÌÉÓÅËÕÎÄÙ-ÔÏ ÔÕÔ ÇÄÅ?

ñ ÐÒÏ ÍÉÌÌÉÓÅËÕÎÄÙ ÎÉÞÅÇÏ ÎÅ ÇÏ×ÏÒÉÌ. ëÏÍÕ ÎÕÖÎÁ ÚÁÄÅÒÖËÁ, ÔÏÔ ÓÁÍ ÐÏÓÞÉÔÁÅÔ. åÓÌÉ ÚÁÈÏÞÅÔ, ËÏÎÅÞÎÏ. :) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ðÏÓÅÔÉÔÅÌÉ ÄÏÌÖÎÙ ÏÂÝÁÔØÓÑ ÐÏ ÓÅÔÉ.

Hello, Alex! You wrote to Alexander Derazhne on Tue, 13 Apr 2004 22:56:48 +0400:

AG>>> ÷ gcc libc ÅÓÔØ ÔÏÖÅ: AG>>> delay (uint8_t mS); // × ÍÉÌÌÉÓÅËÕÎÄÁÈ

AD>> ðÏÄÏÂÎÙÅ ÆÕÎËÃÉÉ _ÏÂÙÞÎÏ_ ÏÂÅÓÐÅÞÉ×ÁÀÔ ÚÁÄÅÒÖËÕ Ó ÔÏÞÎÏÓÔØÀ ÄÏ AD>> Ë×ÁÎÔÁ ÐÌÁÎÉÒÏ×ÝÉËÁ (ÄÅÓÑÔËÉ ÍÓ).

AG> ë Ó×ÅÄÅÎÀÉ ÐpÉÍÕ, ÎÏ ÐpÉ ÞÅÍ ÐÌÁÎÉpÏ×ÝÉË-ÔÏ? ï pÔÏÓ pÅÞÉ ÎÅ ÂÙÌÏ. =)

áÁÁ... îÏ ×ӣ ÒÁ×ÎÏ ÍÏÖÎÏ ÎÁÓÔÕÐÉÔØ ÎÁ ÇÒÁÂÌÉ, ÅÓÌÉ × ÂÉÂÌÉÏÔÅËÅ ÜÔÉ ÆÕÎËÃÉÉ ÚÁ×ÑÚÁÎÙ ÎÁ ÔÁÊÍÅÒ, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÌÁÎÉÒÏ×ÝÉËÏÍ - ËÏÇÄÁ ÏÎ ÅÓÔØ. :-))) ô.Å. ÎÕÖÎÏ ÓÍÏÔÒÅÔØ ËÏÎËÒÅÔÎÕÀ ÒÅÁÌÉÚÁÃÉÀ. Delay × ÍÓ ÛÔÕËÁ ÄÌÑ libc ÓÔÁÎÄÁÒÔÎÁÑ, ×ÅÒÏÑÔÎÏÓÔØ ţ ÉÍÐÌÅÍÅÎÔÁÃÉÉ _ÎÅ_ ÞÅÒÅÚ ÃÉËÌ ÐÒÏÃÅÓÓÏÒÁ É ÂÅÚ ÐÒÉ×ÑÚËÉ Ë ÅÇÏ ÔÁËÔÏ×ÏÊ ÄÏÓÔÁÔÏÞÎÏ ×ÅÌÉËÁ. ÷ÏÔ × VxWorks'Å, ÅÓÌÉ ÎÅ ÏÛÉÂÁÀÓØ, ÅÓÔØ ÚÁÄÅÒÖËÁ × ÔÁËÔÁÈ É ÄÏÓÔÕÐ Ë ÔÁËÔÏ×ÏÊ ÄÌÑ ×ÙÞÉÓÌÅÎÉÊ (ÄÏËÉ ÎÁ ÒÁÂÏÔÅ :-(( ). á × libc ÓÏÍÎÉÔÅÌØÎÏ...

With best regards, Alexander Derazhne.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required