Технический форум по робототехнике.
The_Kurs » 06 сен 2007, 13:18
Немогу задействовать выводы МК
PORTE, PORTF, PORTG
может у меня atmega128.h кривой хотя с чего бы...
Вот такая строчка в компиляторе вызывает ошибки с этими портами:
PORTF.0=1;
И для чего нужет вывод PEN (1) ??? По даташиту он разрешает SPI програмирование ... хотя МК можно запрограмировать и когда на нём высокий уровень и когда низкий... дак зачем он ???
Компилятор кодевисион. С портами А,B,C,D касяков нет ...
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 вообще никак не реагирует ни на что !!! Как заставить эти порты нормально работать никак понять не могу в чём касяк (((
aesok » 06 сен 2007, 19:02
M103C
avr123.nm.ru » 06 сен 2007, 19:21
The_Kurs писал(а):Спасибо я понял что эта команда не действует на адреса выше 31.
Там же написано КАК управлять.
The_Kurs писал(а):Я все равно никак не могу управлять портами PORTF и PORTG.
Как вы управляете ?
avr123.nm.ru » 06 сен 2007, 19:22
aesok писал(а):M103C
Отключить совместимость фьюзом.
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++;
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 "Си для МК"
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
без подсказки я бы ещё долго не додумался что все из за фьюзов)))