|
Разница CodeVision и WinAVR |
|
|
|
Jul 22 2006, 10:15
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 17-05-06
Пользователь №: 17 190

|
Гребаные идентификаторы.... Как просто было в CodeVision : PORTD.1=1; DDRD=1; Пытаюсь в WinAVR сделать - достал примерно следующий код: Код DDRD &= ~(_BV(PD2)); // Назначаем 2-ю линию порта D на вход PORTD |= (_BV(PD2)); // подключаем "подтягивающий" резистор Нельзя ли попроще как-нибудь? И еще вопрос - инициализирую АЦП - выдает беспорядочные хаотичные цифры. Понятно, что дело в том, что ловятся шумы. Вылечил резистором 4,7 кОм на питание. А как-нить программно нельзяли?
|
|
|
|
|
 |
Ответов
|
Jul 24 2006, 09:21
|
Местный
  
Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445

|
Цитата(vesago @ Jul 24 2006, 11:14)  PORTD &= (1<<blabla) С трудом представляю, где это может пригодиться. Попробуйте написать в том же духе строчку, сбрасывающую в ноль единственный бит.
|
|
|
|
|
Jul 24 2006, 09:53
|
Тутэйшы
   
Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263

|
Цитата(pokos @ Jul 24 2006, 12:21)  Цитата(vesago @ Jul 24 2006, 11:14)  PORTD &= (1<<blabla)
С трудом представляю, где это может пригодиться. Попробуйте написать в том же духе строчку, сбрасывающую в ноль единственный бит. PORTD &= ~(1<<blabla); Код #define LED_DDR DDRD #define LED_PORT PORTD #define LED_PIN PIND #define LED 3 #define LED_ON LED_PORT |= (1<<LED) #define LED_OFF LED_PORT &= ~(1<<LED)
if(system.led_timer == 0) { if((LED_PIN & (1<<LED)) == 0) { LED_ON; } else { LED_OFF; }
system.led_timer = 0.1*(1000/SYSTEM_TICK); }
|
|
|
|
|
Jul 24 2006, 12:43
|
Местный
  
Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445

|
Цитата(vesago @ Jul 24 2006, 13:53)  PORTD &= ~(1<<blabla); Когда-то я придумал то же самое.... товарищи даже спрашивали, мол, зачем так сложно. Потом попробовал, во что превращают это разные компиляторы с разными опциями оптимизации. Интересно было!
|
|
|
|
|
Jul 24 2006, 13:07
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(pokos @ Jul 24 2006, 16:43)  Цитата(vesago @ Jul 24 2006, 13:53)  PORTD &= ~(1<<blabla); Когда-то я придумал то же самое.... товарищи даже спрашивали, мол, зачем так сложно. Потом попробовал, во что превращают это разные компиляторы с разными опциями оптимизации. Интересно было! Всегда считал, что битовые операции с портами в AVR компилятор преобразует в что-то типа: sbi DDRB,1
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Jul 24 2006, 13:14
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Семён @ Jul 24 2006, 16:07)  Цитата(pokos @ Jul 24 2006, 16:43)  Цитата(vesago @ Jul 24 2006, 13:53)  PORTD &= ~(1<<blabla); Когда-то я придумал то же самое.... товарищи даже спрашивали, мол, зачем так сложно. Потом попробовал, во что превращают это разные компиляторы с разными опциями оптимизации. Интересно было! Всегда считал, что битовые операции с портами в AVR компилятор преобразует в что-то типа: sbi DDRB,1 А разве не так?
|
|
|
|
|
Jul 24 2006, 13:28
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(_Bill @ Jul 24 2006, 17:14)  Цитата(Семён @ Jul 24 2006, 16:07)  Цитата(pokos @ Jul 24 2006, 16:43)  Цитата(vesago @ Jul 24 2006, 13:53)  PORTD &= ~(1<<blabla); Когда-то я придумал то же самое.... товарищи даже спрашивали, мол, зачем так сложно. Потом попробовал, во что превращают это разные компиляторы с разными опциями оптимизации. Интересно было! Всегда считал, что битовые операции с портами в AVR компилятор преобразует в что-то типа: sbi DDRB,1 А разве не так? товарищ pokos утверждает что НЕТ. Кстати если у меня в проекте есть не используемая аппаратура их порты и регистры (если можно) стараюсь использовать в виде глобальных флагов. typedef struct SYSTEM { unsigned char data1:1; unsigned char data2:1; unsigned char data3:1; unsigned char data4:1; }SYSTEM; __no_init volatile SYSTEM system@0x40; значительно увеличивается скорость работы установки флага system.data1=1;, сброса флага и проверки флага.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Jul 24 2006, 14:11
|
Местный
  
Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445

|
Цитата(Семён @ Jul 24 2006, 17:28)  товарищ pokos утверждает что НЕТ. Кстати, не утверждал, просто осадочек остался. И проверил в имеющихся ЦодеВижн и ИАР - нормально компилируют. Потом нашёл-таки проект, где чудеса. Дык, там опечатка - как раз PORTD &= (1<<blabla) вместо PORTD &= ~(1<<blabla); Так что, пардоньте, товарищи.
|
|
|
|
Сообщений в этой теме
virtuality Разница CodeVision и WinAVR Jul 22 2006, 10:15 ksv198 Цитата(virtuality @ Jul 22 2006, 14:15) Г... Jul 22 2006, 12:30 niccom Цитата(virtuality @ Jul 22 2006, 14:15) Г... Jul 22 2006, 12:34 xemul Код#define bitset(var,bitno) ((var... Jul 22 2006, 14:20 pitt Разница CodeVision и WinAVR в том, что один пакет ... Jul 22 2006, 16:13 vesago Цитата(pitt @ Jul 22 2006, 19:13) Разница... Jul 23 2006, 06:41  defunct Цитата(vesago @ Jul 23 2006, 09:41) Недос... Jul 23 2006, 20:15   Serg79 Цитата(defunct @ Jul 24 2006, 00:15) Цита... Jul 24 2006, 04:59    defunct Цитата(Serg79 @ Jul 24 2006, 07:59) Ну эт... Jul 24 2006, 06:31    vet Цитата(Serg79 @ Jul 24 2006, 08:59) Писат... Jul 24 2006, 07:52     Serg79 Цитата(vet @ Jul 24 2006, 11:52) Цитата(S... Jul 24 2006, 08:55 Laksus Цитатаxemul
#define bitset(var,bitno) ((var) |= 1 ... Jul 22 2006, 16:39 xemul Цитата(Laksus @ Jul 22 2006, 20:39) Понят... Jul 22 2006, 17:38     _Bill Цитата(pokos @ Jul 24 2006, 15:43) Цитата... Jul 24 2006, 12:57       Woodoo Цитата(_Bill @ Jul 24 2006, 15:14) Цитата... Jul 24 2006, 19:31        pitt Цитата(Woodoo @ Jul 24 2006, 15:31) Если ... Jul 24 2006, 22:42 vet Serg79
Ручками совершенно необязательно; лично я и... Jul 24 2006, 09:05 Семён Цитата(vet @ Jul 24 2006, 13:05) Serg79
Р... Jul 24 2006, 09:37 Serg79 Цитата(vet @ Jul 24 2006, 13:05) Serg79
Р... Jul 24 2006, 10:01 WHALE дел на 5 минут,к тому-же я обычно свои библиотечны... Jul 24 2006, 11:24 Serg79 Цитата(WHALE @ Jul 24 2006, 15:24) дел на... Jul 24 2006, 11:55  Семён Цитата(Serg79 @ Jul 24 2006, 15:55) Цитат... Jul 24 2006, 12:23  defunct Цитата(Serg79 @ Jul 24 2006, 14:55) А Cod... Jul 24 2006, 23:06 beer_warrior ЦитатаИ правильно. Хотя:
А IAR еще лучше, но по 5.... Jul 25 2006, 06:44 osnwt Цитата(beer_warrior @ Jul 25 2006, 09:44)... Jul 25 2006, 10:59 Serg79 ЦитатаWinAVR не хуже, он просто сложнее в освоении... Jul 25 2006, 09:04 beer_warrior ЦитатаНасколько слышал, у него есть проблемы с адр... Jul 25 2006, 11:09 osnwt Цитата(beer_warrior @ Jul 25 2006, 14:09)... Jul 25 2006, 11:22 pitt Цитата(beer_warrior @ Jul 25 2006, 07:09)... Jul 25 2006, 15:31 beer_warrior ЦитатаЕсли писать со знанием особенностей конкретн... Jul 25 2006, 11:31 osnwt Цитата(beer_warrior @ Jul 25 2006, 14:31)... Jul 25 2006, 17:37 beer_warrior Цитатаего стоит хотя бы отсутствие прагмы управлен... Jul 25 2006, 17:35 pitt Цитата(beer_warrior @ Jul 25 2006, 13:35)... Jul 25 2006, 18:50 tiasur AVRGCC 4.1.1
При любой оптимизации:
Код
PORTD ... Jul 25 2006, 22:16 pitt WinAVR size:
Код
PORTD = ( 1 << 0 ... Jul 26 2006, 01:04  tiasur pitt, а какая у Вас версия? Jul 26 2006, 01:43   pitt Цитата(tiasur @ Jul 25 2006, 21:43) pitt,... Jul 26 2006, 14:04    Сергей Борщ О! Может тут кто-нибудь скажет:
1) как застави... Jul 26 2006, 17:16     aesok Цитата(Сергей Борщ @ Jul 26 2006, 21:16) ... Jul 26 2006, 21:03 beer_warrior Цитата2) объявляю две функции (putstring, putstrin... Jul 26 2006, 21:53 pitt Цитата(beer_warrior @ Jul 26 2006, 17:53)... Jul 26 2006, 23:01 pitt Цитата(beer_warrior @ Jul 26 2006, 17:53)... Jul 27 2006, 12:58 pitt Цитата(beer_warrior @ Jul 26 2006, 17:53)... Jul 27 2006, 13:21 Seasonf Прошу прощения за глупый вопрос, но как заставить ... Aug 11 2006, 08:07 pitt Код#include <avr/pgmspace.h>
...
char cali... Aug 11 2006, 11:15 Seasonf Или так:
#include <avr/pgmspace.h>
...
pro_... Aug 11 2006, 12:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|