Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.11.2011, 14:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
|
С SPI перестаёт работать таймер m8
Что за фигня происходит? когда включаю апаратный SPI в мега8 таймер перестаёт работать.
Включаю SPI
SPCR=0x05;
SPSR=0x01;
и эта часть проги перестаёт работать.
PHP код:
|
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ FREQ_M = FREQ_M + 0xFF; } //счет вх имп
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{ TCCR0 = 0x00; //stop Timer0
TCCR1B = 0x00; //stop Timer1
TCNT1H=0x38 ;
TCNT1L=0xDB;
FREQ = FREQ + FREQ_M + TCNT0;
TCNT0 = 0;
FREQ_M = 0;
COUNT=1;
TCCR1B=0x05; //start Timer1
TCCR0=0x07; //start Timer0
}
|
Что может быть кто знает?
Значение FREQ вывожу на дисплей , там только нули.
С програмным SPI всё нормально.
|
|
|
|
26.11.2011, 14:42
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
Или чёта путаете... или недоговариваете...
|
|
|
|
26.11.2011, 14:59
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
С другой стороны, если вы используете SPI в режиме полинга т.е. ждете в цикле конца передачи - то большой разницы нет, программный у вас SPI или аппаратный. Наоборот, аппаратный даже вреден - его нельзя перекинуть на другие ноги. А значит сложнее разводить плату, изжога, головная боль.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
26.11.2011, 15:05
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
"Вы его просто готовить не умеете."...
|
|
|
|
26.11.2011, 15:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
Да нет вроде ни чего не путаю.
С програмным SPI всё чики брики но стоит включить апаратный всё сразу хердык.
Нет ни какого ответа от таймера.
В эту функцию посылаю COUNT
void out_array(unsigned long reg)
{
unsigned char i,atemp;
unsigned long val,temp;
if (COUNT)
{ val=reg;
for (i=0; i‹7; i++)
{ temp=step_razr[i];
atemp=0;
while(val ›= temp)
{ atemp++; val-=temp; }
arr[i]=atemp+0x30;
} COUNT=0;
}
}
С програмным всё пучком.
|
|
|
|
26.11.2011, 17:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
Ассемблерный листинг смотрите
Давно уже пора создать тему "косяки компиляторов"
|
|
|
|
27.11.2011, 05:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
Сообщение от niXto
|
Ассемблерный листинг смотрите
Давно уже пора создать тему "косяки компиляторов"
|
Спасибо конечно но я в асме совсем не понимаю.
Ну а тему конечно наверно надо сделать, особенно полезно будет для тех кто пользуеться CvAVR.
Недавно сгенерировал начальный код с применением ADC дык он с самого начала не стал работать, переписал инициализацию в ручную сразу всё завелось, хотя написал тоже самое.
|
|
|
|
27.11.2011, 07:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
Так сюда его приложите. Есть ведь те, кто понимает
Однозначно могу сказать - при включенном СПИ работают все 3 таймера в любых комбинациях, как впрочем и вся остальная требуха. Компилятор чего-то намудрил
|
|
|
|
27.11.2011, 08:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
|
Re: С SPI перестаёт работать таймер m8
Спасибо но я перенёс проект в Eclipse и всё заработало.
Сколько раз себя убеждаю в том что надо писать в нормальной среде.
Мало того запустил на два дисплея один цветной по апаратному SPI а монохромный по програмному, и всё поёт и пляшет, совершенно без каких нибудь глюков и проблем.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:50.
|
|