реклама на сайте
подробности

 
 
> Программа для IAR, Для того чтоб начать работать с ИАР
*SERG
сообщение Feb 16 2007, 09:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Прикрепите в данной теме пожалуста какуюнибудь простенькую программу для того чтоб начать работать с ИАР с коментариями если можно. Немного поразбирался с иаровским примером, не вижу где припасанны установки всех регистров контроллера blink.gif Почемуто программа состоит из нескольких проектов, это принципиально чтоли? И зачем программу делать из проектов?
Хотелось бы посмотреть простенькую программу в которой есть пару прерываний, не важно от чего, посмотреть саму структуру и правила написания. Писал в квавр с год наверно, вот щас решил на иар перейти. Если кому не жалко иль не сложно, накатайте небольшой примерчик с установкой регистров, функцией или процедурой и обработкой прерываний smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
*SERG
сообщение Feb 16 2007, 14:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Подскажите как объявить битовую переменную и назначать переменные в битовом формате в квавр
bit
0b00110101
А в ИАР не понял как это сделать sad.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 16 2007, 21:49
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(*SERG @ Feb 16 2007, 13:11) *
Подскажите как объявить битовую переменную и назначать переменные в битовом формате в квавр
bit 0b00110101
А в ИАР не понял как это сделать sad.gif
как справедливо заметил SpiritDance - "в лоб" никак. Можно написать макрос, но это тупиковое решение. Посмотрите вот это сообщение: http://electronix.ru/forum/index.php?s=&am...st&p=203047 там и пример записи и объяснение почему лучше не использовать конструкции вроде UCSR1B = 0xd8; и #pragma vector = 0x78


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
*SERG
сообщение Feb 19 2007, 06:33
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Цитата(Сергей Борщ @ Feb 16 2007, 21:49) *
Цитата(*SERG @ Feb 16 2007, 13:11) *

Подскажите как объявить битовую переменную и назначать переменные в битовом формате в квавр
bit 0b00110101
А в ИАР не понял как это сделать sad.gif
как справедливо заметил SpiritDance - "в лоб" никак. Можно написать макрос, но это тупиковое решение. Посмотрите вот это сообщение: http://electronix.ru/forum/index.php?s=&am...st&p=203047 там и пример записи и объяснение почему лучше не использовать конструкции вроде UCSR1B = 0xd8; и #pragma vector = 0x78


Посмотрел, спасибо!

А вот такое объявление битовых переменных "не красиво" чтоли?


struct
{
unsigned char skan_per:1;
unsigned char timer_int:1;
unsigned char timer_int2:1;
unsigned char vse_fazi:1;
unsigned char knopka:1;
unsigned char A5:1;
unsigned char A6:1;
unsigned char A7:1;
} flag;
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 19 2007, 12:24
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(*SERG @ Feb 19 2007, 05:33) *
А вот такое объявление битовых переменных "не красиво" чтоли?
Красиво до тех пор пока вам не захочется одной командой сбросить или установить более одного флага, либо по ходу работы переинициализировать эту структуру любым значением, отличным от нуля. Тогда это выльется в массу писанины. Придется либо заводить временные переменные такого же типа что и структура, либо работать с указателями и явно приводить типы. А начальная инициализация любым значением кроме нуля выглядит примерно так: flag = {0,1,1,1,0,1,1,0}; и тоже совершенно нечитаема. Приходится делать запись примерно такую:
Код
flag = {
0,    // skan_per
1,    // timer_int1
1,    // timer_int2
1,    // vse_fazi
0,    // knopka
1,    // A5
1,    // A6
0,    // A7
} flag;
что требует не меньше писаниниы чем flag= (0<<SKAN_PER)|(1<<TIMER_INT_1)|(TIMER_INT_2)|(1<<VSE_FAZI)|(0<<KNOPKA)|(1<<A_5)|(1<<A_6)|(0<<A_7).

При этом оба метода имеют право на жизнь. Запись битовым полем имеет тот плюс, что компилятор не позволит вам ошибочно установить флаг в совершенно другой переменной, а при ширине битового поля более 1 бита сам подставляет нужные сдвиги и маски.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- *SERG   Программа для IAR   Feb 16 2007, 09:56
- - kd_Rash   http://electronix.ru/forum/index.php?act=S...25752...   Feb 16 2007, 10:18
|- - kd_Rash   Цитата(kd_Rash @ Feb 16 2007, 10:18) http...   Feb 16 2007, 11:57
|- - *SERG   Когда пример открываешь там несколько вкладок прое...   Feb 16 2007, 12:18
- - *SERG   Это я видел, там же куски программы, ещё и в jpeg,...   Feb 16 2007, 10:28
|- - Igor26   http://pol-sem.narod.ru/polymuson/polymuson.htm   Feb 16 2007, 11:06
- - GL_basik   В совое время разработал офисные часы. Потом понад...   Feb 16 2007, 11:09
- - GDI   Регистры контроллера описаны в файлах ioavr.h , in...   Feb 16 2007, 11:43
- - Fortune   Цитата(*SERG @ Feb 16 2007, 10:56) ...Поч...   Feb 16 2007, 11:55
- - Fortune   Ну и например для USART в начале программы инициал...   Feb 16 2007, 12:00
- - SasaVitebsk   Вот ещё пару ссылок на полные проекты мои и чужие ...   Feb 16 2007, 12:33
|- - *SERG   Цитата(SasaVitebsk @ Feb 16 2007, 12:33) ...   Feb 16 2007, 12:37
- - IgorKossak   Цитата(*SERG @ Feb 16 2007, 08:56) Почему...   Feb 16 2007, 13:13
|- - SpiritDance   Цитата(*SERG @ Feb 16 2007, 14:11) Подска...   Feb 16 2007, 18:53
- - GL_basik   Цитата(*SERG @ Feb 16 2007, 12:18) смотрю...   Feb 16 2007, 15:32
|- - *SERG   Цитата(GL_basik @ Feb 16 2007, 15:32) Цит...   Feb 16 2007, 19:44
- - bill_vs   Если надо работать со всем байтом (словом...), мож...   Feb 19 2007, 14:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 00:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.0142 секунд с 7
ELECTRONIX ©2004-2016