|
Светодиоды и AVR не дружат. |
|
|
|
Mar 20 2006, 21:16
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
В общем дело вот в чем, сегодня доехал таки до чипа и дипа и закупился необходимыми деталями. Спаял простую схемку с одним диодом через резистор подключающимся к AVR MEGA8. Программу которая просто мигает этим диодом залил в МК. Все отлично зашилось через 5 проводков, диод замигал в опщем щастье! Захотелось большего, и припаял еще 3 диода все к порту C выводам 2,3,4,5. Записал в МК прошивку: Цитата #include <mega8.h>
// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { if (PORTC.5==0) { PORTC.5=1; PORTC.4=0; } else { PORTC.5=0; PORTC.4=1; } // Place your code here
}
// Declare your global variables here
void main(void) { PORTC.5=0; PORTC.4=1; // Declare your local variables here
// Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0 PORTB=0x00; DDRB=0x01;
// Port C initialization // Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00; DDRC=0x3F;
// Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 3,906 kHz TCCR0=0x04; TCNT0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off // INT1: Off MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01;
// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;
// Global enable interrupts #asm("sei")
while (1) { // Place your code here
}; } В результате все диоды мигают одновременно с частотой таймера, хотя должны мигать только PC.4 и PC.5 ПООЧЕРЕДНО! И еще момент такой, в ISIS все эмулируется нормально, т.е. помигивают только 2 диода поочередно, остальные не горят. Помогите плз разобраться )
Сообщение отредактировал ps1x - Mar 20 2006, 21:18
|
|
|
|
|
 |
Ответов
|
Mar 24 2006, 08:12
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(AndyBig @ Mar 21 2006, 00:51)  Во-первых, совет: светодиоды подключайте к контроллеру не анодом, а катодом - на землю мега вроде бы выносливее, чем от питания. Цитата(ILYCHOFF @ Mar 21 2006, 07:43)  Подключите сначала светодиоды нормально как Вам AndyBig писал Я, конечно, жутко извиняюсь, но, господа, неужели трудно перед тем, как давать советы (особенно категорические - "сначала сделай нормально"), заглянуть в datasheet и посмотреть, так ли это? Лично я всегда туда смотрю прежде, чем дать какой-либо совет. Читаем в любой меге: Цитата Each output buffer has symmetrical drive characteristics with both high sink and source capability. The pin driver is strong enough to drive LED displays directly. И картинки графиков входного и выходного токов портов подтверждают то же самое. Так, извините, зачем же наследие PIC-ов бездумно переносить на всё остальное? Таким бездумным советом (хорошо, если он сопровождается "вроде бы" - тогда вопроса нет) можно заставить человека перелопатить схему (и хорошо. если это макет, а не специально сделанная pcb) без видимого на то повода. Поленившись заглянуть в даташит (сэкономив 1 минуту своего времени), можно потратить 15-30 минут времени чужого. Есть предложение внимательнее относиться к таким вещам. Автору темы: светодиоды можно ставить так, как хочется. Ограничивающие резисторы, безусловно, нужны. Но полярность может быть любой, лишь бы можно было его зажечь.
|
|
|
|
Сообщений в этой теме
ps1x Светодиоды и AVR не дружат. Mar 20 2006, 21:16 ps1x Уже 11 человек посмотрели эту тему, неужели никто ... Mar 20 2006, 22:24 AndyBig По идее все верно, должны моргать поочередно РС4 и... Mar 20 2006, 22:29 ps1x ДОБАВЛЕННО: И еще, попробовал прогнать програмку:
... Mar 20 2006, 22:33 ps1x Щас момент, не уходите спать, подпаяю еще один рез... Mar 20 2006, 23:04 ps1x Резюк припаял но увы, чуда не случилось...
Странны... Mar 20 2006, 23:23 ps1x Другой Мк тоже не работает корректно при записи PO... Mar 20 2006, 23:41 Laksus ЦитатаВсе отлично зашилось через 5 проводков, диод... Mar 21 2006, 00:14 ps1x 2 Laksus : Насколько я понял это делитель.
Впрочем... Mar 21 2006, 00:43 ps1x Как Вы думаете, что будет, если зашить в МК вот эт... Mar 21 2006, 00:58 ps1x Может быть дело в фьюзах? Всю ночь бился ап стену ... Mar 21 2006, 04:39 WHALE ОТ чего тактируется мега и фьзы в студию. Mar 21 2006, 05:23 ILYCHOFF Подключите сначала светодиоды нормально как Вам An... Mar 21 2006, 05:43 ps1x Мега тактируется от внутреннего осциллятора, а фью... Mar 21 2006, 05:49 defunct Цитата(ps1x @ Mar 21 2006, 07:49) Мега та... Mar 21 2006, 07:53 ps1x и еще, вот такой код
PORTD=0b00001000;
Вызывает... Mar 21 2006, 06:33 WHALE Т0 -8-РАЗРЯДНЫЙ.Прескалер ты выбрал на 256,т.е Fвх... Mar 21 2006, 06:48 ps1x Да на счет фьюзов именно так.
Использовал встроенн... Mar 21 2006, 07:00 muravei Цитата(ps1x @ Mar 21 2006, 10:00) Или мне... Mar 21 2006, 07:10 ps1x Резисторы уже не помогут поскольку я спалил ЛПТ...... Mar 21 2006, 07:13 beer_warrior Стоп, стоп.
Включение светодиодов!!!
... Mar 21 2006, 07:13 muravei Цитата(beer_warrior @ Mar 21 2006, 10:13)... Mar 21 2006, 07:31 defunct Цитата(beer_warrior @ Mar 21 2006, 09:13)... Mar 21 2006, 08:04 ps1x Спасибо за сочувствие... )
Как вы думаете, заработ... Mar 21 2006, 07:19 ps1x Программатор "5 проводков" ЛПТ спалил ст... Mar 21 2006, 07:38 muravei Цитата(ps1x @ Mar 21 2006, 10:38) Програм... Mar 21 2006, 07:48 muravei Цитата(ps1x @ Mar 21 2006, 10:38) Програм... Mar 21 2006, 10:27 WHALE ну так купи PCI плату с портами-350рублей. Mar 21 2006, 07:48 ps1x Паленость МК выражается тем что я по недосмотру ... Mar 21 2006, 08:13 defunct Цитата(ps1x @ Mar 21 2006, 10:13) Паленос... Mar 21 2006, 08:29 ps1x Задачи на сегодня - съездить в институт, в чип и д... Mar 21 2006, 08:23 ps1x Паленость одного из двух МК и ЛПТ на материнке ((.... Mar 22 2006, 14:30 Petka Цитата(ps1x @ Mar 22 2006, 17:30) Паленос... Mar 22 2006, 15:34 muravei Цитата(ps1x @ Mar 22 2006, 17:30) Вариант... Mar 23 2006, 07:11 defunct ЦитатаТеперь резонный вопрос где взять схемку STK-... Mar 22 2006, 16:13 ps1x ЦитатаДумаю, надо выбрать номер порта.
)) Думаю, ... Mar 23 2006, 18:53 otrog ЦитатаВ общем решил проапгрейдить материнку и спая... Mar 24 2006, 08:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|