|
Разница 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 23 2006, 20:15
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(vesago @ Jul 23 2006, 09:41)  Недостаток PORTD.1 потом если надо код перегнать под другую платформу, менять больше придется. Приятнее когда PORTD=(1<<LED) - везде пройдет и понятнее имхо. Приятнее спору нет, однако это совсем не равносильно с PORTD.1 = 1. И сгенеренные команды будут совсем разными. Для PORTD.1 = 1 будет сгенерено SBI PORTD, 1 Для PORTD = (1 << LED): LDI Rxx, (1 << LED) OUT PORTD, Rxx
|
|
|
|
Guest_Serg79_*
|
Jul 24 2006, 04:59
|
Guests

|
Цитата(defunct @ Jul 24 2006, 00:15)  Цитата(vesago @ Jul 23 2006, 09:41)  Недостаток PORTD.1 потом если надо код перегнать под другую платформу, менять больше придется. Приятнее когда PORTD=(1<<LED) - везде пройдет и понятнее имхо.
Приятнее спору нет, однако это совсем не равносильно с PORTD.1 = 1. И сгенеренные команды будут совсем разными. Для PORTD.1 = 1 будет сгенерено SBI PORTD, 1 Для PORTD = (1 << LED): LDI Rxx, (1 << LED) OUT PORTD, Rxx Ну это вы зря, WinAVR может позволить себе токое невежество только при отключенной оптимизации (-О0) и то не всегда. Писать: " TIMSK.1 = 1; TIMSK.7 = 1; " можно себе позволить только если не приходиться сопровождать код. Зато как приятно через полгода поднять код и увидеть там " TIMSK |= (1<<OCIE0)|(1<<OCIE2); ", сразу становиться понятно что у тебя сдесь делается. А на счет того какой компилятор лучше смотри тему http://electronix.ru/forum/index.php?showtopic=12284
|
|
|
|
|
Jul 24 2006, 07:52
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
Цитата(Serg79 @ Jul 24 2006, 08:59)  Писать: " TIMSK.1 = 1; TIMSK.7 = 1; " можно себе позволить только если не приходиться сопровождать код. Никто не мешает в CV написать TIMSK.OCIE0 = 1;
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
Guest_Serg79_*
|
Jul 24 2006, 08:55
|
Guests

|
Цитата(vet @ Jul 24 2006, 11:52)  Цитата(Serg79 @ Jul 24 2006, 08:59)  Писать: " TIMSK.1 = 1; TIMSK.7 = 1; " можно себе позволить только если не приходиться сопровождать код.
Никто не мешает в CV написать TIMSK.OCIE0 = 1;Я прикрепил заголовочный файл для ATMega64 из CV, так попробуй там найти флаг OCIE0. Это тебе придется все самому ручками прописывать. Это один из минусов CV, кстати не самый маленький.
Сообщение отредактировал Serg79 - Jul 24 2006, 08:57
Прикрепленные файлы
MEGA64.zip ( 1.16 килобайт )
Кол-во скачиваний: 66
|
|
|
|
Сообщений в этой теме
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    defunct Цитата(Serg79 @ Jul 24 2006, 07:59) Ну эт... Jul 24 2006, 06:31 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 pitt Во-первых,
PORTD.1 = 1 эквивалентно PORTD |= ( 1 ... Jul 23 2006, 21:32 vesago Цитата(pitt @ Jul 24 2006, 00:32) Во-перв... Jul 24 2006, 07:14  pokos Цитата(vesago @ Jul 24 2006, 11:14) PORTD... Jul 24 2006, 09:21   vesago Цитата(pokos @ Jul 24 2006, 12:21) Цитата... Jul 24 2006, 09:53    pokos Цитата(vesago @ Jul 24 2006, 13:53) PORTD... Jul 24 2006, 12:43     _Bill Цитата(pokos @ Jul 24 2006, 15:43) Цитата... Jul 24 2006, 12:57     Семён Цитата(pokos @ Jul 24 2006, 16:43) Цитата... Jul 24 2006, 13:07      _Bill Цитата(Семён @ Jul 24 2006, 16:07) Цитата... Jul 24 2006, 13:14       Семён Цитата(_Bill @ Jul 24 2006, 17:14) Цитата... Jul 24 2006, 13:28        pokos Цитата(Семён @ Jul 24 2006, 17:28) товари... Jul 24 2006, 14:11       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
|
|
|