Mario wrote
1 | void delay_1ms( u16 i )
|
2 | {
|
3 | while(i) { // leserlicher while(i > 0)
|
4 | _delay_ms( 1 );
|
5 | --i;
|
6 | }
|
Das ist aber nicht dasselbe wie
1 | void delay_1ms( u16 i )
|
2 | {
|
3 | do{
|
4 | _delay_ms( 1 );
|
5 | }while( --i );
|
6 | }
|
Beim ersteren wird zuerst überprüft, ob i bereits null ist und erst dann
1ms gewartet, während bei letzterem zuerst gewartet und dann überprüft
wird. Eigentlich ist deine Methode die "richtigere" weil es logischer
ist, dass beim Aufruf von delay_1ms(0) nicht garnicht gewartet wird.
MfG Mark