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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> AVR первые шаги - первые ошибки
D H
сообщение Nov 1 2006, 06:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Вот и написана в CodeVision Первая программа. В VMLab симулируется нормально. Зашил в ATMega16. В ответ тишина.
В проекте выбран ATmega16, 4MHz. Прошиваю PonyProg.
Фьюзы такие (отмечены галочками в PonyProg):
SUT1=1
CKSEL1=1
CKSEL0=1

На 40-й ноге телодвижений нет.

Reset через 0,1 мф на землю. +5 на VCC и AVCC

---------------------------------
#include
#define PA_OUT DDRA = 0b00000001

void initialization(void)
{
PORTA=0b11111110;
PA_OUT; //сделать PORTA выходом
TCCR0 = 0x4;/* таймер включить */
}


void main(void)
{
unsigned int Flag;
initialization();

while (1)
{
Flag=0;
if((TIFR&0x01)) // Проверка флага переполнения timer0
{
TIFR = 0x01; // очистить флаг переполнения timer0
PORTA.0=~PORTA.0; //Инвертировать значение в порту А
}
};
}
---------------------------------

Объясните пожалуйста, что неправильно сделал?
Go to the top of the page
 
+Quote Post
vet
сообщение Nov 1 2006, 06:54
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Фьюзы - отмечены галочками или установлены в 1 ? это разные вещи.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
D H
сообщение Nov 1 2006, 07:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Фьюзы отмечены галочками в PonyProg:
SUT1=1
CKSEL1=1
CKSEL0=1

Отмечены галочками. Я знаю, что это разные вещи. Прошу помочь разобраться что сделано не правильно.
Go to the top of the page
 
+Quote Post
vet
сообщение Nov 1 2006, 07:13
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Приведите скриншот окна установки фьюзов.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
D H
сообщение Nov 1 2006, 07:33
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Цитата(vet @ Nov 1 2006, 10:13) *
Приведите скриншот окна установки фьюзов.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
otrog
сообщение Nov 1 2006, 07:45
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Попробуйте так:
Прикрепленное изображение


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
$ilent
сообщение Nov 1 2006, 07:58
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 116
Регистрация: 14-02-06
Из: Москва. Перово
Пользователь №: 14 296



Помоему почти всё не правильно.
Код
#include <mega16.h>
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
PORTA=~PORTA.0;
}

void main(void)
{
// Input/Output Ports initialization
// Port A initialization
PORTA=0b11111110;
DDRA = 0b00000001;


// Port B initialization
PORTB=0x00;
DDRB=0x00;

// Port C initialization
PORTC=0x00;
DDRC=0x00;

// Port D initialization
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x00;

// External Interrupt(s) initialization
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here
      };
}


БЕЗ КВАРЦА
CSEL3...0 = 0011 = слева на права - ( галка, галка, пусто, пусто) - (галка - это ноль - это сброшен)
SUT0 = галка, SUT1 = пусто или просто не трогаешь (оставляешь как есть)

Сообщение отредактировал $ilent - Nov 1 2006, 08:00
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 1 2006, 08:04
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(D H @ Nov 1 2006, 09:38) *
Reset через 0,1 мф на землю.
Объясните пожалуйста, что неправильно сделал?

уж лучше reset "через" 10к на +5V
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 1 2006, 08:23
Сообщение #9


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Чтобы определиться с умолчаниями по отношению к фьюзам в том или ином программаторе, их иногда полезно прочитать.
Таким образом, по крайней мере, ничего не испортите.
Go to the top of the page
 
+Quote Post
D H
сообщение Nov 1 2006, 09:20
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Цитата($ilent @ Nov 1 2006, 10:58) *
Помоему почти всё не правильно.
Код
#include <mega16.h>
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
PORTA=~PORTA.0;
}

void main(void)
{
// Input/Output Ports initialization
// Port A initialization
PORTA=0b11111110;
DDRA = 0b00000001;



// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here
      };
}


БЕЗ КВАРЦА
CSEL3...0 = 0011 = слева на права - ( галка, галка, пусто, пусто) - (галка - это ноль - это сброшен)
SUT0 = галка, SUT1 = пусто или просто не трогаешь (оставляешь как есть)


Ситуация такая же. В VMLab все эмулируется. Прошиваю, тишина.
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 1 2006, 09:43
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(D H @ Nov 1 2006, 12:20) *
Ситуация такая же. В VMLab все эмулируется. Прошиваю, тишина.

Вы ресет к пяти вольтам хоть чем-нибудь тяните?
Go to the top of the page
 
+Quote Post
D H
сообщение Nov 1 2006, 11:50
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Цитата(Petka @ Nov 1 2006, 12:43) *
Цитата(D H @ Nov 1 2006, 12:20) *

Ситуация такая же. В VMLab все эмулируется. Прошиваю, тишина.

Вы ресет к пяти вольтам хоть чем-нибудь тяните?


Нет. Резистор отсутствовал. Поставил и все запустилось. Огромное спасибо. Начало положено.
Надо отдать должное дружелюбию и стремлению помочь новичку. Ваш форум был третий, где я задал вопрос и, что самое главное, получил внятный ответ. На остальных форумах ответы были такого характера : "Пиши на асме и все будет понятно".
Еще раз огромное спасибо.
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Nov 1 2006, 15:28
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



давно уже хотел спросит форумчан, да всё новую тему не хочется открывать =)


раз уж здесь оказалось дело в ресете... скажите мне:
я экспериментально установил, что ресет, висящий в воздухе, прекрасно позволяет работать атмеге. сделал уже не одно любительское устройство (на профессионализм пока и не претендую), которые работают и под капотом машины, и в комнатных условиях... и ещё не разу не сталкивался с проблемами.

если мне надо хардварный ресет, то просто кидаю кнопку с ресета на землю. и прекрасно работает!

так вот вопрос: чем мне это грозит в будущем? =)


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
Alex11
сообщение Nov 1 2006, 15:51
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Если провод от ноги Reset никуда не идет, то ничем не грозит, а если идет - пониженной помехоустройчивостью. Там внутренняя подтяжка 30-60 КОм, это многовато для длинной линии в условиях сильных помех.
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Nov 1 2006, 20:56
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



от рисета идёт, на разъём программирования... буду его обрубать на пп после прошивки =)


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post

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

 


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


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