|
AVR первые шаги - первые ошибки |
|
|
|
Nov 1 2006, 07:58
|

Частый гость
 
Группа: Новичок
Сообщений: 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
|
|
|
|
|
Nov 1 2006, 09:20
|

Участник

Группа: Участник
Сообщений: 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 все эмулируется. Прошиваю, тишина.
|
|
|
|
|
Nov 1 2006, 11:50
|

Участник

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

|
Цитата(Petka @ Nov 1 2006, 12:43)  Цитата(D H @ Nov 1 2006, 12:20)  Ситуация такая же. В VMLab все эмулируется. Прошиваю, тишина.
Вы ресет к пяти вольтам хоть чем-нибудь тяните? Нет. Резистор отсутствовал. Поставил и все запустилось. Огромное спасибо. Начало положено. Надо отдать должное дружелюбию и стремлению помочь новичку. Ваш форум был третий, где я задал вопрос и, что самое главное, получил внятный ответ. На остальных форумах ответы были такого характера : "Пиши на асме и все будет понятно". Еще раз огромное спасибо.
|
|
|
|
|
Nov 1 2006, 15:28
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
давно уже хотел спросит форумчан, да всё новую тему не хочется открывать =)
раз уж здесь оказалось дело в ресете... скажите мне: я экспериментально установил, что ресет, висящий в воздухе, прекрасно позволяет работать атмеге. сделал уже не одно любительское устройство (на профессионализм пока и не претендую), которые работают и под капотом машины, и в комнатных условиях... и ещё не разу не сталкивался с проблемами.
если мне надо хардварный ресет, то просто кидаю кнопку с ресета на землю. и прекрасно работает!
так вот вопрос: чем мне это грозит в будущем? =)
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Nov 1 2006, 20:56
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
от рисета идёт, на разъём программирования... буду его обрубать на пп после прошивки =)
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Nov 2 2006, 18:42
|
Участник

Группа: Новичок
Сообщений: 22
Регистрация: 2-11-06
Из: Киев
Пользователь №: 21 916

|
Конечно антенну из RESET лучше не делать. Но если помехи "достают", то надо с RESET-ом считаться и фильтр. емкость поближе к корпусу повесить, чтобы не все так близко принимал с "эфира". При "грязном" питании 10к резистор (с RESET на пит.) - прямой мост для помех и гарантия случайного сброса. Когда мониторинг события СБРОС не проводить, то может возникать мнение, что ложных сбросов никогда и не было...
|
|
|
|
|
Nov 6 2006, 11:15
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(smk @ Nov 6 2006, 13:48)  Интересуют оригинальные решения. Философское... Вообще-то придумать оригинальное решение в технике практически невозможно. Все уже давно кем-то придумано, и даже по несколько раз. Нучиться использовать придуманное - уже не зря жизнь сложилась.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Nov 7 2006, 13:57
|
Местный
  
Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788

|
Цитата(Terapefft @ Nov 7 2006, 16:49)  сори за офтоп, подскажите пожалуста почему при компилировании в АВР студио 4.12 проги для меги8, он ругается на строку: st y+,yh ; пишет типа: C:\avr\avtomat\AVT.asm(2121): error: Operands may cause undefined behaviour Очевидно он считает что результат отерации может быть различным Иными словами что будет и по какому адресу сохранится Например 1 high(y) по адресу y 2 high(y+1) по адресу y и так далее А вот почему ето error а не warning не знаю
|
|
|
|
|
Nov 7 2006, 14:50
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Terapefft @ Nov 7 2006, 13:49)  сори за офтоп, подскажите пожалуста почему при компилировании в АВР студио 4.12 проги для меги8, он ругается на строку: st y+,yh ; пишет типа: C:\avr\avtomat\AVT.asm(2121): error: Operands may cause undefined behaviour Видимо потому, что во время выполнения атомарной (неделимой) операции yh может измениться из-за наличия переноса из yl. В документе doc085е (с. 139) указывается, что результат следующих инструкций не определен. Код 1. st y+,r28 2. st y+,r29 3. st -y,r28 4. st -y,r29
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Nov 8 2006, 09:49
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(Terapefft @ Nov 8 2006, 09:58)  как мне лучше поступить в этой ситуации? подскажите пожалуста Использовать отдельные команды: ST Y,YH ADIW YL,1
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|