Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.01.2011, 15:39
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: С код помогите решить проблему
Сообщение от 7Fantomas7
|
TIMSK=0x40;
|
А где процедуры прерываний?
|
|
|
Сказали "Спасибо" CodeNameHawk
|
|
|
24.01.2011, 16:07
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: С код помогите решить проблему
Сообщение от 7Fantomas7
|
nml,
Пост №1, пост №5
|
То есть на PB0 вместо "1" - импульсы.
Программа - из поста 5 или из ZIP архива?
В программе, как я понимаю, нет вывода 0 в PB0. Мыслим логически - значит, программа сбрасывается. Причины могут быть
- WDT (что у вас в фузах?)
- ошибка в коде - вряд ли - Си грубых ошибок не делает
- аппаратная проблема (кстати, 8535L вовсе не обязан работать на 16 МГц)
Я бы
1) в раб. цикл тупо вставил WDR()
2) в программу вставил отладочный модуль - для посмотреть что внутри
3) заменил на процессор без L индекса
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
24.01.2011, 16:09
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: С код помогите решить проблему
Сообщение от CodeNameHawk
|
А где процедуры прерываний?
|
Если ее и нету - не беда, Си подставляет в неиспользуемые вектора RETI. IAR, во всяком случае. Но думаю что и другие делают то же самое.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
24.01.2011, 16:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: С код помогите решить проблему
Хм....CV делает ЭТО...(это программа ТС)
Код:
|
.CSEG
.ORG 0x00
;INTERRUPT VECTORS
RJMP __RESET
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
__RESET:
CLI
CLR R30
OUT EECR,R30
.............
инициализация RAM,Регистров, стека,WDT...и т.д.
RJMP _main |
Последний раз редактировалось OlegNZH; 24.01.2011 в 16:25.
|
|
|
Сказали "Спасибо" OlegNZH
|
|
|
24.01.2011, 16:35
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: С код помогите решить проблему
Сообщение от nml
|
То есть на PB0 вместо "1" - импульсы.
Программа - из поста 5 или из ZIP архива?
В программе, как я понимаю, нет вывода 0 в PB0. Мыслим логически - значит, программа сбрасывается. Причины могут быть
- WDT (что у вас в фузах?)
- ошибка в коде - вряд ли - Си грубых ошибок не делает
- аппаратная проблема (кстати, 8535L вовсе не обязан работать на 16 МГц)
Я бы
1) в раб. цикл тупо вставил WDR()
2) в программу вставил отладочный модуль - для посмотреть что внутри
3) заменил на процессор без L индекса
|
Я, уважая других, не написал бы поста, не проверив все это в протеусе.
(Достаточно поставить точку остановки на первую строку в main и запустить на выполнение)
Разрешать прерывания, без описания их процедур, источник дополнительных глюков.
OlegNZH все правильно, прога прыгает на начало, а там установка PB0 в ноль.
Последний раз редактировалось CodeNameHawk; 24.01.2011 в 16:45.
|
|
|
Сказали "Спасибо" CodeNameHawk
|
|
|
24.01.2011, 16:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: С код помогите решить проблему
Дык.. и я про то-же. Разрешать прерывания,и не ставить обработчик....некошерно как-то, в любом случае, независимо от компилятора.
upd. И , кстати- вопрос дискусионный - что лучше- RESET или RETI по умолчанию.
Последний раз редактировалось OlegNZH; 24.01.2011 в 16:50.
|
|
|
Сказали "Спасибо" OlegNZH
|
|
|
24.01.2011, 16:43
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: С код помогите решить проблему
Сообщение от OlegNZH
|
Хм....CV делает ЭТО...(это программа ТС)
|
Во как... Буду иметь в виду, если придется с CV когда-нить дело иметь
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
24.01.2011, 16:49
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: С код помогите решить проблему
Сообщение от nml
|
Если ее и нету - не беда, Си подставляет в неиспользуемые вектора RETI. IAR, во всяком случае. Но думаю что и другие делают то же самое.
|
WinAVR делает
Цитата:
|
00000000 ‹__vectors›:
0: 0c 94 2a 00 jmp 0x54 ; 0x54 ‹__ctors_end›
4: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
8: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
c: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
10: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
14: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
18: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
1c: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
20: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
24: 0c 94 47 00 jmp 0x8e ; 0x8e ‹__bad_interrupt›
...
|
где __bad_interrupt
Цитата:
|
0000008e ‹__bad_interrupt›:
8e: 0c 94 00 00 jmp 0 ; 0x0 ‹__vectors›
|
|
|
|
Сказали "Спасибо" CodeNameHawk
|
|
|
25.01.2011, 02:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: С код помогите решить проблему
CodeNameHawk,
nml,
OlegNZH,
Мужики огромное спасибо. К сожалению у меня почемуто показывало что в топике нет новых сообщений и к моменту когда я сюда заглянул то ошибку решил самостоятельно. Прблемы в питании никакой небыло, проблема в коде и я начал с нуля потихоньку добавлять и нашел где бока. Всеравно всем огромное спасибо. У меня возникла другая проблема. Дело в том что это мой первый большой проект и часть того что наваял там видно во вкладке notes соответственно изначально это было одним файлом и было просимулировано, но возникла необходимость разнести проект по отдельным файлам, и как следствие дрова. Я буду очень признателен если поможете, этот компилятор требует от меня поставить точку с запятой туда где она стоит, вечер угрохал че делать не знаю.
Проект с исправлениями во вложении, в функции start_310 в строке
TCCR2=0x6С; //Запускаем таймер 2 со всеми настройками ШИМа
Требует точку с запятой, онаж блин там есть.
Error: Function\start_310.c(19): missing ';'
Мыслей никаких
Последний раз редактировалось 7Fantomas7; 25.01.2011 в 03:01.
|
|
|
|
25.01.2011, 12:27
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: С код помогите решить проблему
А буковка "С" не русская случаем?
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:54.
|
|