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

 
 
> Winavr сокращает функцию, если переменные размещены в регистрах
A.l.e.x.
сообщение Jun 10 2008, 11:54
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 4-02-08
Из: Винница
Пользователь №: 34 732



Помогите разобраться с WINAVR. При размещении переменных в регистрах компилятор ведёт себя подозрительно: сокращает функции, в которых они используются. 07.gif Но при обычном объявлении всё работает. Подскажите, где может быть ошибка?

Код
#include <avr/io.h>
#include <avr/interrupt.h>
volatile register unsigned long count_ms asm("r4");
volatile register unsigned char flag_ms asm("r8");
/////////////////////////////////////////////////////////////////////////////////////////////////
void timer_ms(unsigned long value)
{
    count_ms = value;
    flag_ms = 0;
    while(flag_ms == 0);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
ISR(TIM0_COMPA_vect)
{
    if(count_ms){--count_ms;}
    else{flag_ms = 1;}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
int main(void)
{
    TCCR0A = (0<<COM0A1)|(0<<COM0A0)|(0<<COM0B1)|(0<<COM0B0)|(1<<WGM01)|(0<<WGM00);    //CTC
    TCCR0B = (0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(1<<CS01)|(0<<CS00);        // FCPU/8
    OCR0A = 149;
    TIMSK0 = (0<<OCIE0B)|(1<<OCIE0A)|(0<<TOIE0);
    sei();
    
    
    while(1){
        timer_ms(100);
        PORTB ^= 0x01;
    }
}

Прикрепленные файлы
Прикрепленный файл  timer_ms.rar ( 7.91 килобайт ) Кол-во скачиваний: 41
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- A.l.e.x.   Winavr сокращает функцию   Jun 10 2008, 11:54
- - aesok   Регистровые volatile переменные в GCC не работают....   Jun 10 2008, 12:15
|- - A.l.e.x.   Цитата(aesok @ Jun 10 2008, 15:15) Регист...   Jun 10 2008, 12:36
|- - dimka76   Цитата(A.l.e.x. @ Jun 10 2008, 15:36) И к...   Jun 10 2008, 12:55
||- - A.l.e.x.   Цитата(dimka76 @ Jun 10 2008, 15:55) Испо...   Jun 10 2008, 14:02
||- - singlskv   Цитата(A.l.e.x. @ Jun 10 2008, 18:02) Ско...   Jun 10 2008, 14:06
||- - A.l.e.x.   Цитата(singlskv @ Jun 10 2008, 17:06) А к...   Jun 10 2008, 14:33
||- - aesok   Цитата(singlskv @ Jun 10 2008, 18:06) А к...   Jun 10 2008, 16:28
||- - singlskv   Цитата(aesok @ Jun 10 2008, 20:28) Все ве...   Jun 10 2008, 17:44
||- - AHTOXA   Цитата(singlskv @ Jun 10 2008, 23:44) Мож...   Jun 10 2008, 18:12
||- - alx2   Цитата(AHTOXA @ Jun 10 2008, 23:12) и так...   Jun 10 2008, 19:32
||- - AHTOXA   Цитата(alx2 @ Jun 11 2008, 01:32) gcc-4.2...   Jun 11 2008, 12:33
||- - singlskv   Цитата(AHTOXA @ Jun 11 2008, 16:33) Стран...   Jun 11 2008, 13:54
|||- - AHTOXA   Цитата(singlskv @ Jun 11 2008, 19:54) Это...   Jun 11 2008, 17:44
|||- - singlskv   Цитата(AHTOXA @ Jun 11 2008, 21:44) Это б...   Jun 11 2008, 18:48
|||- - aesok   Второй раз повторяю, GCC не поддерживает volatile ...   Jun 11 2008, 19:04
|||- - singlskv   Цитата(aesok @ Jun 11 2008, 23:04) Второй...   Jun 11 2008, 19:33
|||- - aesok   Цитата(singlskv @ Jun 11 2008, 23:23) Но ...   Jun 11 2008, 19:47
||||- - singlskv   Цитата(aesok @ Jun 11 2008, 23:47) GCC не...   Jun 11 2008, 20:13
|||- - aesok   Цитата(singlskv @ Jun 11 2008, 23:33) Ну ...   Jun 11 2008, 20:57
|||- - singlskv   Цитата(aesok @ Jun 12 2008, 00:39) Только...   Jun 11 2008, 21:15
|||- - aesok   Цитата(singlskv @ Jun 12 2008, 01:15) а н...   Jun 11 2008, 22:08
|||- - singlskv   Цитата(aesok @ Jun 12 2008, 01:43) Все ва...   Jun 11 2008, 22:21
||- - alx2   Цитата(AHTOXA @ Jun 11 2008, 17:33) Стран...   Jun 12 2008, 11:50
||- - singlskv   Цитата(alx2 @ Jun 12 2008, 15:50) Я компи...   Jun 12 2008, 12:22
||- - alx2   Цитата(singlskv @ Jun 12 2008, 17:22) ИТО...   Jun 12 2008, 20:51
||- - aesok   сори, ошибочный пост   Jun 15 2008, 14:34
|- - singlskv   Цитата(A.l.e.x. @ Jun 10 2008, 16:36) И к...   Jun 10 2008, 13:59
|- - Сергей Борщ   Цитата(A.l.e.x. @ Jun 10 2008, 15:36) И к...   Jun 10 2008, 14:19
|- - A.l.e.x.   Цитата(Сергей Борщ @ Jun 10 2008, 17:19) ...   Jun 11 2008, 06:39
|- - Сергей Борщ   Цитата(A.l.e.x. @ Jun 11 2008, 09:39) Мож...   Jun 11 2008, 14:54
|- - A.l.e.x.   Цитата(Сергей Борщ @ Jun 11 2008, 17:54) ...   Jun 11 2008, 15:41
|- - Сергей Борщ   Цитата(A.l.e.x. @ Jun 11 2008, 18:41) Я и...   Jun 11 2008, 16:48
|- - A.l.e.x.   Цитата(Сергей Борщ @ Jun 11 2008, 19:48) ...   Jun 12 2008, 06:21
- - mdmitry   Разные версии WinAvr разрешают располагать регистр...   Jun 11 2008, 16:37
- - _Pasha   Тоже хотел недавно "поджать" компилер в ...   Jun 12 2008, 05:36
- - AHTOXA   Цитата(alx2 @ Jun 12 2008, 17:50) Я компи...   Jun 12 2008, 18:20
- - singlskv   Цитата(AHTOXA @ Jun 12 2008, 22:20) А я к...   Jun 12 2008, 19:04


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

 


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


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