![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
pettimm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 24.9.2005 Репутация: 1 Всего: 1 |
Здравствуйте,уважаемые програмисты,братья и сестры!
Подскажите пожалуйста почему не работает цыкл с метки Start2 ,если обнулять таймер0 (ldi temp,0x00;out TCNT0,temp)сразу после метки Start2, проверял много раз на реальном контроллере Atmega8 . Спасибо.Петр. .device atmega8 .nolist .include "m8def.inc" .list ; Îáúÿâëåíèÿ .def temp= r16 .def temp1= r18 Init : ;Îïðåäåëåíèå âõîäîâ\âûõîäîâ è èõ íà÷àëüíûõ çíà÷åíèé ;Êîíôèãóðàöèÿ ïîðòîâ ;êîíôèãóðàöèÿ ïîðòà  Ldi temp , 0b00111000 Out DDRB , temp ; è èõ íà÷àëüíûõ çíà÷åíèé Ldi temp , 0b00000000 Out PORTB , temp ;êîíôèãóðàöèÿ ïîðòà C Ldi temp , 0b00111110 Out DDRC , temp ; è èõ íà÷àëüíûõ çíà÷åíèé Ldi temp , 0b00001111 Out PORTC , temp ;êîíôèãóðàöèÿ ïîðòà D Ldi temp , 0b11111011 Out DDRD , temp Ldi temp , 0b01000100 Out PORTD , temp Rjmp Start ; Îáðàáîòêà ïðåðûâàíèé ; ****** Start : ;Íà÷àëî ïðîãðàììû ;èíèöèàëèçàöèÿ ñòåêà ldi temp,low (RAMEND) out SPL,temp ldi temp,high (RAMEND) out SPh,temp on: ;êîíôèãóðàöèÿ òàéìåðà sk/1024= 6347,65625 ðàç â ñåê. ldi temp,0b00000101 out tccr0,temp Start2: ;ldi temp,0x00 ;out TCNT0,temp in temp,TCNT0 cpi temp,48 breq svet1 rjmp Start2 svet1: ldi temp1,0b00001000 out portd,temp1 ldi temp,0x00 out TCNT0,temp Start3: in temp,TCNT0 cpi temp,48 breq svet2 rjmp Start3 svet2: ldi temp1,0b00000000 out portd,temp1 ldi temp,0x00 out TCNT0,temp rjmp Start2 Это сообщение отредактировал(а) pettimm - 13.10.2007, 22:32 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
1. Пользуйся кнопкой "код".
2. Значит срабатывает:
А зачем ты на ассемблере пишешь (если можно AVR Studio + GCC)? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
pettimm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 24.9.2005 Репутация: 1 Всего: 1 |
Здравствуйте ,Bradypus ! Спасибо за ответ, я пишу в AVR Studio4 ,но будьте добры подскажите что означает GCC ? Опыта маловато... Ассемблер мне нравится... Реально вижу по светодиоду(+наушником слышу генератор): если " ldi temp,0x00 , out TCNT0,temp " заремляно, то срабатывает "breq svet1" , а если нет - то не срабатывает (светодиод не горит). Спасибо Петр. Start2: ;ldi temp,0x00 ;out TCNT0,temp in temp,TCNT0 cpi temp,48 breq svet1 rjmp Start2 svet1: ldi temp1,0b00001000 out portd,temp1 ldi temp,0x00 out TCNT0,temp Это сообщение отредактировал(а) pettimm - 13.10.2007, 23:52 |
|||
|
||||
AVR32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 28.4.2007 Где: СПб Репутация: 1 Всего: 1 |
Замени инструкции breq на brsh
|
|||
|
||||
pettimm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 24.9.2005 Репутация: 1 Всего: 1 |
Не помогло ... ложусь спать,до завтра ... у нас 00:45 ,Украина.
|
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
Смотришь тут
http://winavr.sourceforge.net/ , качаешь, создаешь С проект в AVR Studio и лишаешься многих проблем. И еще раз! Обрати (со мной тоже можно на ты) внимание на кнопку "код" над сообщением!!! А ник у меня cardinal (а bradypus - это статус)... ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
AVR32 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 28.4.2007 Где: СПб Репутация: 1 Всего: 1 |
Передвинь метку Start2
на другое место
Иначе ты постоянно в цикле обнуляешь таймер |
||||
|
|||||
pettimm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 24.9.2005 Репутация: 1 Всего: 1 |
Спасибо cardinalu за совет , а avr32 ответил правильно но сейчас другая проблема возникла : когда обнуляю таймер в метке "Perehod1" то тоже прекращается работа программы , а без обнуления в метке "Perehod1, все работает. Обнуление нужно для точности. Подскажите пожалуйста причину... Спасибо. ldi r19,0xff ldi r20,0x88 Pausa15sek: in temp,TCNT0 cpi temp,0x88 breq Perehod1 rjmp Pausa15sek Perehod1: dec r19 cpi r19,0 ;ldi temp,0x00 ;out TCNT0,temp brne Pausa15sek dec r20 cpi r20,0 brne Pausa15sek rjmp Generator Generator: in temp,TCNT0 cpi temp,48 brsh svet1 rjmp Generator svet1: ldi temp1,0b00001000 out portd,temp1 ldi temp,0x00 out TCNT0,temp Start3: in temp,TCNT0 cpi temp,48 breq svet2 rjmp Start3 svet2: ldi temp1,0b00000000 out portd,temp1 ldi temp,0x00 out TCNT0,temp rjmp Generator |
|||
|
||||
AVR32 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 28.4.2007 Где: СПб Репутация: 1 Всего: 1 |
Опять те же грабли, обнуляешь таймер в цикле!
Сделай так
|
||||
|
|||||
pettimm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 24.9.2005 Репутация: 1 Всего: 1 |
А вот и нет ....Глаза открыл ГОСПОДЬ , просто обнуление в метке "Perehod1",
сильно удлиняет время данного цыкла и я немогу дождаться перехода на метку "Generator". Вобщем достаточно использовать один регистр ( r19) , при частоте кварца 6,5 Мгц и при ниже приведенных цыфрах длительность подпрограммы "Pausa15sek" примерно и будет=15 сек. Спасибо cardinal и AVR32 , успехов вам... on:ldi r19,0xff ;ldi r20,0x88 ;êîíôèãóðàöèÿ òàéìåðà sk/1024= 6347,65625 ðàç â ñåê. ldi temp,0b00000101 out tccr0,temp Pausa15sek: in temp,TCNT0 cpi temp,0xff breq Perehod1 rjmp Pausa15sek Perehod1: dec r19 cpi r19,0 l di temp,0x00 out TCNT0,temp brne Pausa15sek ; dec r20 ; cpi r20,0 ; brne Pausa15sek rjmp Generator Generator: Это сообщение отредактировал(а) pettimm - 15.10.2007, 22:01 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
Спасибо! Тебе тоже - успехов!
![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |