Помощь в WinAvr
16.11.2010, 19:03
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Помощь в WinAvr
Сообщение от AGAT0365
|
|
Ну а, со мной как подскажите чё не так.
|
А как Вы определили, что не работает?
|
|
|
|
17.11.2010, 14:36
|
|
|
Частый гость
Регистрация: 12.07.2009
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помощь в WinAvr
Возникла проблема, AVR Studio при выполнении функции не видит переменные, пишет Location not valid. При чём это только при включенной оптимизации. Приходиться лишний раз перекидывать значение функции на другую переменную. Пробовал объявить так volatile char wr_bit, но эффекта нуль.
|
Цитата:
|
void write_bit(char wr_bit) {
DDRC |=_BV(7);
PORTC &=~_BV(7);
_delay_us(1);
if (wr_bit==1)
{
DDRC &=~_BV(7);
_delay_us(120);
}
else _delay_us(120);
}
|
|
|
|
|
17.11.2010, 14:45
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Помощь в WinAvr
Сообщение от WartKert
|
|
Возникла проблема, AVR Studio при выполнении функции не видит переменные, пишет Location not valid.
|
Потому что переменная не в памяти, а в регистре. Ну и зачем Вам ее видеть? Если очень хочется, то объявите локальную переменную с квалификатором volatile, например chat volatile tmp, скопируйте туда wr_bit в начале функции и контроллируйте ее. Но будет работать медленнее.
|
|
|
|
17.11.2010, 14:56
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Помощь в WinAvr
Сообщение от Vov123
|
|
Размер,примерно,процентов на 30 будет больше,не в пользу WinAVR.
|
Добавляйте ИМХО к таким заявлениям 
Вообще обсуждать вкус устриц можно только с теми, кто их ел. Вы же явно ни разу WinAvr не использовали.
|
|
|
|
17.11.2010, 15:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Помощь в WinAvr
Здесь на форуме не раз всплывали сравнения. Там цифры без всяких ИМХО. Никакого выигрыша по размеру у CV нет. А проигрыш по быстродействию иногда доходит до 10 раз. Это не считая того, что CV не совсем компилятор Си - некоторые конструкции языка вообще не поддерживает.
|
|
|
|
18.11.2010, 02:02
|
|
|
Частый гость
Регистрация: 12.07.2009
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помощь в WinAvr
Спасибо за помощь, (по ссылке не могу пройти антивирус ругается на сайт). Решил подключить таймер, и сделать ф-цию паузы. Но при уходе из ф-ии ISR, пограмма начинает самого начала, а не с ф-ии delay.
|
Цитата:
|
ISR(TIMER1_COMPA_vect) {
cli();
cycl++;
TCNT1H=0x00;
TCNT1L=0x00;
reti();
}
void delay(char seconds) {
volatile char AL;
AL=useconds;
TCCR1B=0x01;
TIMSK1=0x02;
for (cycl=1; cycl ‹ AL; )
{
sei();
}
void main() {
OCR1AH=0x00;
OCR1AL=0x4F;
TCCR1A=0x01;
TCCR1B=0x01;
TCCR1C=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
delay(10);}
|
|
|
|
|
18.11.2010, 03:24
|
|
|
Прописка
Регистрация: 17.02.2009
Сообщений: 154
Сказал спасибо: 14
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Помощь в WinAvr
Сообщение от kison
|
|
А как Вы определили, что не работает?
|
Так это проверял в AVRstudio+proteus и не чё не происходит.
|
|
|
|
18.11.2010, 07:30
|
|
|
Вид на жительство
Регистрация: 21.08.2007
Сообщений: 318
Сказал спасибо: 12
Сказали Спасибо 67 раз(а) в 61 сообщении(ях)
|
Re: Помощь в WinAvr
2WartKert
У вас же в конце мэйна нет бесконечного цикла - вот процессор и бежит до конца памяти, а потом начинает программу сначала.
Добавте после делея:
while(1);
P.S. В чём смысл разрешать прерывания в цикле ?
Последний раз редактировалось Cybermaker; 18.11.2010 в 07:33.
|
|
|
|
18.11.2010, 12:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Помощь в WinAvr
Сообщение от AGAT0365
|
|
Так это проверял в AVRstudio+proteus и не чё не происходит.
|
А что должно произойти? Что Вы ожидаете? Марш России заиграть должен?
|
|
|
|
18.11.2010, 13:13
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Помощь в WinAvr
Сообщение от Vov123
|
|
я книжки читаю,а не посты.
|
Муха цокотуха? Маша и медведь? До более серьезных Вам еще расти и расти.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:02.
|
|