Ср янв 18, 2012 16:49:56
BerZerK-ku писал(а):Не знаю что там можно понять не так. Вы говорили о каком-то преобразовании типов, которое всему мешает, а ошибка крылась в другом месте
Ср янв 18, 2012 16:55:44
Ср янв 18, 2012 17:09:17
BerZerK-ku писал(а):Отвечаю честно, без под..ок и сарказма, не понимаю я о чем вы пишете. Можете подробней написать о чем речь? где кто в кого преобразовывался?
unsigned char get_key_pressed(void){
unsigned char key;
unsigned char key2;
key = ~(PIND & ANY_KEY);
delay(15);
if(key == ~(PIND & ANY_KEY))
return key;
else
return NO_KEY;
}
unsigned char get_key_pressed(void){
unsigned char key;
unsigned char key2;
key = ~(PIND & ANY_KEY);
delay(15);
key2 = ~(PIND & ANY_KEY);
if(key == key2)
return key;
else
return NO_KEY;
}
Ср янв 18, 2012 17:10:32
Ср янв 18, 2012 17:13:38
BerZerK-ku писал(а):Дошло. Вы видимо считаете, что вот это ~(PORTB & ANY_KEY), будет приведено к int? В IAR вы можете забыть об этом.
Ср янв 18, 2012 17:16:31
Ср янв 18, 2012 17:20:37
ошибка есть, по-моему. а то, что в IAR-е вы ее не почувствуете, это говорит о вашем мастерстве. спасибо IAR-у, плюющему на требования стандартаBerZerK-ku писал(а)::))) тяжело найти ошибку там, где ее не будет
Ср янв 18, 2012 17:22:45
Ср янв 18, 2012 17:31:12
unsigned char v1 = 1;
unsigned char v2 = 255;
unsigned char v3 = 2;
if(v1 == (v2 + v3))
PORTB = 1;
else
PORTB = 2;
Ср янв 18, 2012 17:33:34
Ср янв 18, 2012 17:34:27
BerZerK-ku писал(а):Эх-х-х, опять не успел дописать
И зря дописывал. Не то проверил. WinAVR все-таки придерживается стандарта )
Ср янв 18, 2012 17:41:33
Ср янв 18, 2012 17:43:43
Ср янв 18, 2012 17:44:46
Ср янв 18, 2012 17:51:31
т.е. моя неправильная функция у вас делала бы свое дело, так? а потом вам поручили бы Фобос-Грунт-2 программировать, и вуаля! летит наш фобос на дно океана как же вы можете разбираться в правильности ЧУЖОГО кода, если сами пишите тяп-ляп?! то UL вам не надо приписывать к константам больше 65535, то при байтовых вычислениях вам начхать на typecast...BerZerK-ku писал(а)::))) Почему не правильно? Написано не по стандартам, а вот дело свое делает, причем без нареканий.
Ср янв 18, 2012 17:53:34
while(1)
{
resp=255;
while((! (PIN_BUTTON & (1<<KNOPKA))))
{
if (resp)
{
resp--;
if(!resp) {
мои действия();
delay_ms(100);
}
}
}
}
Ср янв 18, 2012 18:01:03
Ср янв 18, 2012 18:09:26
BerZerK-ku писал(а):А я и не брал это звание, это ваша инициатива
Вообще , если вспомните начало, речь шла именно о IAR. И вы приводили функцию для использования в нем. Даже не задумывался над тем, что в используемом вами WinAVR это будет ошибкой. А вот если бы я со своими замечаниями залез в раздел WinAVR, то ситуация кардинально отличалась бы
Ср янв 18, 2012 18:13:03
Ср янв 18, 2012 18:15:58