roboforum.ru

Технический форум по робототехнике.

ATmega128 - как работать со страшими портами ?

ATmega128 - как работать со страшими портами ?

The_Kurs » 06 сен 2007, 13:18

Немогу задействовать выводы МК
PORTE, PORTF, PORTG
может у меня atmega128.h кривой хотя с чего бы...
Вот такая строчка в компиляторе вызывает ошибки с этими портами:
PORTF.0=1;

И для чего нужет вывод PEN (1) ??? По даташиту он разрешает SPI програмирование ... хотя МК можно запрограмировать и когда на нём высокий уровень и когда низкий... дак зачем он ???

Компилятор кодевисион. С портами А,B,C,D касяков нет ...

Re: касяки ATmega 128

avr123.nm.ru » 06 сен 2007, 14:29

The_Kurs писал(а):Вот такая строчка в компиляторе вызывает ошибки с этими портами:
PORTF.0=1;


Посмотри    avr123.nm.ru/z1.htm    Задача - упражнение  1

Внимание !  Очень важно!  Битовые операции !

Манипуляции отдельными битами регистров и переменных.

The_Kurs » 06 сен 2007, 15:41

Спасибо я понял что эта команда не действует на адреса выше 31.

Я все равно никак не могу управлять портами PORTF и PORTG.

В вмлаб все нормально работает а на железе какая-то чепуха ! Наножку PG2 выводятся какие то импулься с высокой частотой !!! Порт F вообще никак не реагирует ни на что !!! Как заставить эти порты нормально работать никак понять не могу в чём касяк (((

Re: касяки ATmega 128

aesok » 06 сен 2007, 19:02

M103C

avr123.nm.ru » 06 сен 2007, 19:21

The_Kurs писал(а):Спасибо я понял что эта команда не действует на адреса выше 31.


Там же написано КАК управлять.

The_Kurs писал(а):Я все равно никак не могу управлять портами PORTF и PORTG.


Как вы управляете ?

Re: касяки ATmega 128

avr123.nm.ru » 06 сен 2007, 19:22

aesok писал(а):M103C


Отключить совместимость фьюзом.

Re: касяки ATmega 128

The_Kurs » 07 сен 2007, 08:34

PORTG=0x00;
DDRG=0xFF;

PORTF=0x00;
DDRF=0xFF;

while (1)
     {
     PORTG=0xFF;
   PORTD.7++;
   PORTF=PORTF+0x01;
         };

Из всех команд работает только PORTD.7++;

Re: касяки ATmega 128

avr123.nm.ru » 07 сен 2007, 09:41

The_Kurs писал(а):PORTG=0xFF;
   
PORTF=PORTF+0x01;


Если эти строки не работают то наверносовместимость с атмега103 у вас включена.

PORTF=PORTF+0x01;  лучше писать так

PORTF ++;    или так   PORTF += 1;  подробней на  avr123.nm.ru/05.htm  "Си для МК"

Re: касяки ATmega 128

The_Kurs » 07 сен 2007, 13:54

avr123.nm.ru писал(а):PORTF=PORTF+0x01;  лучше писать так

PORTF ++;    или так   PORTF += 1;  подробней на  avr123.nm.ru/05.htm  "Си для МК"

Действительно фьюз M103C изменил и заработало )))

PORTF++; вызывает ошибку компилятора... поэтому и написал по другому в .h файле порты E,F,G по описаны так :
#define DDRF *(unsigned char *) 0x61
#define PORTF *(unsigned char *) 0x62
из за этого и не получается через ++ писать (((

The_Kurs » 07 сен 2007, 14:19

Теперь у меня заработал порт F но только четыре младших разряда (((

Отключтл фьюз JTAG-а и все заработало как надо !!!

SSG » 07 сен 2007, 15:07

Datasheet, как всегда, сила!  :D

Master » 08 сен 2007, 10:33

SSG писал(а):Datasheet, как всегда, сила!  :D

Ничего мы же не ищем легких путей, но обычно такой гемор только если ДШ на англ., а тут есть все на русском :)

The_Kurs » 08 сен 2007, 12:29

без подсказки я бы ещё долго не додумался что все из за фьюзов)))


Rambler\'s Top100 Mail.ru counter