|
|
  |
Неработает порт А в ATiny 2313 |
|
|
|
Aug 28 2009, 11:06
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Подскажите пожалуйста, столкнулся с такой проблемой как неработает вывод портаА, хотя порт B работает безукаризненно. Порт не пробит, уверен. Контроллер ATiny2313. Вот листинг. Заренее благодарен. Код #define ENABLE_BIT_DEFINITIONS 1 #include <iotiny2313.h> #include <intrinsics.h>
void main (void) { DDRB = 0xFF; DDRA = 0xFF; while(1) { PORTB = (1<<PB0); PORTA = (1<<PA2); __delay_cycles (2000000); PORTB = (0<<PB0); PORTA = (0<<PA2); __delay_cycles (2000000); } }
|
|
|
|
|
Aug 28 2009, 11:29
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Да, программатор использую параллельный, при этом тактирование внутреннее 8МГц. По поводу испытаний на других ногах порта, А это пробывал с самого начала, эффект тотже  Есть HEX код другой программы, там все работает при тех же значениях fuse bits, при этом прогнал её через дебагер в AVR Studio, различинй не усмотрел (при инициализации, а целиком не получается уж больно большая прога там). Проблема в том что нужно использовать именно пин PA2.
|
|
|
|
|
Aug 28 2009, 11:42
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Пробовал с RSTDISBL и без, нето ... Fuse = 0xE4FFFF
Сообщение отредактировал idle1 - Aug 28 2009, 11:45
|
|
|
|
|
Aug 28 2009, 12:10
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(idle1 @ Aug 28 2009, 17:06)  Код PORTB = (1<<PB0); PORTA = (1<<PA2); Что это за PB0 и PA2? Это явно что-то не из той оперы  Попробуйте просто Код PORTB = (1<<0); PORTA = (1<<2);
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Aug 28 2009, 12:22
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Цитата(AHTOXA @ Aug 28 2009, 16:10)  Что это за PB0 и PA2? Это явно что-то не из той оперы  Попробуйте просто Код PORTB = (1<<0); PORTA = (1<<2); Это IAR IAR Assembler for AVR 5.20, в заголовочном файле все определения верны.
|
|
|
|
|
Aug 28 2009, 12:54
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Цитата(AHTOXA @ Aug 28 2009, 16:47)  И чем же отличается, скажем, PA0 от PB0?  Возможно, эти определения и верны, но это явно не номера битов. А вот это утверждение не верно! Всякие там PB0 PD0 и т.п. заменяются комптлятором на номера в данном случае. И служат для визуального понимания написанного. Код iotiny2313.h
~~~ /* PORTA */ #define PA2 2 #define PA1 1 #define PA0 0
/* PORTB */ #define PB7 7 #define PB6 6 #define PB5 5 #define PB4 4 #define PB3 3 #define PB2 2 #define PB1 1 #define PB0 0 ~~~
|
|
|
|
|
Aug 28 2009, 14:29
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Всем спасибо за участие  Проблема решилась правкой опций компилятора IAR.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|