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

 
 
> От HELP MEGA8 к вопрос по IAR!, Переходим с проблемы на проблему!
Sergio66
сообщение Jun 21 2005, 11:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526



Я два дня назад создал тему HELP MEGA8. Спасибо всем, кто откликнулся. Однако, проблема оказалась совсем не в подключении кристалла, в совершенно в другом месте! Проблема оказалась в IAR 4.10B/W32 (4.10.2.5).
Вот такой код на С:
#include <iom8.h>

int main( void )
{
long unsigned int i;
DDRB|= (1<<1);

while(1)
{

PORTB^=(1<<1);
i=0xffff;
while (i--);
}
}
все догадались, что должно произойти. Диод на PB1 должен моргать.
Однако, камень запускается раз на 4 - 5 включений питания. (Все подтянуто, все сглажено).

Меняем проект на:
.include "m8def1.inc"

begin:


ldi r16,low(RAMEND)
out spl,r16
ldi r16,high(RAMEND)
out sph,r16


ldi r16,(1<<1)
out DDRB,r16

; основной цикл программы
loop:
ldi r16,(1<<1) ; светится один светодиод
out PORTB,r16
rcall delay ; задержка
ldi r16,(0<<1) ; теперь гасим его
out PORTB,r16
rcall delay ; задержка

rjmp loop ; повторение цикла

; процедура задержки
; примерно полсекунды при частоте 7,37 МГц
; три пустых вложенных цикла соответственно
delay:
ldi r16,30 ; 30
delay1:
ldi r17,200 ; 200
delay2:
ldi r18,200 ; и еще 200 итераций
delay3:
dec r18
brne delay3
dec r17
brne delay2
dec r16
brne delay1
ret
вот такая нехитрая замена, сгенеренная в AVRStudio 4.
Все работает как часы!!!Вопросов нет!!!
То есть есть, но уже к знатокам IAR!!!
Компилю проект с опциями:
оптимизация отключена
кристалл - м8
модель Small
Подскажите, ведь не может быть, что IAR не может работать с этим типом контроллеров!!! Понимаю, что сам дурак, но в чем???
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sergio66   От HELP MEGA8 к вопрос по IAR!   Jun 21 2005, 11:40
- - yung   Только сейчас бросилось в глаза. А почему main опи...   Jun 21 2005, 11:59
|- - Miron   Цитата(yung @ Jun 21 2005, 15:59)Только сейча...   Jun 21 2005, 12:14
||- - Sergio66   Цитата(Miron @ Jun 21 2005, 15:14)Цитата(yung...   Jun 21 2005, 12:26
|- - Olegovich   Цитата(yung @ Jun 21 2005, 14:59)Только сейча...   Jun 21 2005, 12:49
- - NickB   Надобно посмотреть что за код генерирует компилято...   Jun 21 2005, 12:28
|- - Sergio66   Цитата(NickB @ Jun 21 2005, 15:28)Надобно пос...   Jun 21 2005, 13:23
- - NickB   Напишите вместо while (i--); таким образом while ...   Jun 21 2005, 12:39
|- - Sergio66   Цитата(NickB @ Jun 21 2005, 15:39)Напишите вм...   Jun 21 2005, 13:09
- - NickB   А что асм в листинге показывает ? Может глюк какой...   Jun 21 2005, 13:25
- - dxp   Цитата(Sergio66 @ Jun 21 2005, 17:40)Я два дн...   Jun 21 2005, 13:36
|- - Sergio66   long unsigned int i; long - случайно попало при...   Jun 21 2005, 13:47
|- - Sergio66   И еще, я убрал из программы все, что может косвенн...   Jun 21 2005, 13:49
- - NickB   так чтобы получился цикл задержки надо либо убрать...   Jun 21 2005, 13:48
- - NickB   А чем Вы грузите устр в первом и во втором случае?   Jun 21 2005, 13:59
|- - Sergio66   Цитата(NickB @ Jun 21 2005, 16:59)А чем Вы гр...   Jun 21 2005, 14:19
|- - Sergio66   Еще один прикол от IAR? Пишем: DDRB|= (1<...   Jun 21 2005, 15:07
|- - Sergio66   Есть!!!!! Заработало!...   Jun 21 2005, 17:39
- - indela   Цитата(Sergio66 @ Jun 21 2005, 18:07)Еще один...   Jun 21 2005, 17:33
- - NickB   Похоже что ваш программатор неверно понимает форма...   Jun 22 2005, 06:52
- - yung   Зато сколько информативных постов!   Jun 22 2005, 06:58


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

 


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


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