Страница 1 из 1

помогите с мегой8

Добавлено: Чт апр 16, 2009 11:36:00
bill
делаю устройство на меге8. к ней подключаю 3-х циферный восьми сегментный индикатор вывод на него с помощью динамической индикацией

portb.0 -> A
portb.1 -> B
portb.2 -> C
portb.3 -> D
portb.4 -> E
portb.5 -> F
portb.6 -> G
portb.7 -> DP
катоды на портD но не вних дело
в некоторых символах негорит сегмент B а в протеусе горит
перерыл весь инет нечего не нашол помогите очень надо уже неделю парюсь
да и ещё пишу на Bascom-avr

Добавлено: Чт апр 16, 2009 12:01:49
Yellow Tiger
Если индикация динамическая, то одним и тем же сегментом в разных разрядах управляет один и тот же выход - так? Следовательно, м/к тут ни при чем - так? Проверь семисегментники, вероятно, в них проблема. Или уточни, что значат слова "в некоторых символах" - в некоторых разрядах, или во всех разрядах, при выводе в них этих самых некоторых символов?

Добавлено: Чт апр 16, 2009 12:28:48
bill
не горит сегмент B как я уже говорил в некоторых символах(цифрах) в "3" "1" "4" а вот "8" горит вся. в ПРОТЕУСЕ работает всё нормально

Добавлено: Чт апр 16, 2009 12:33:31
ikarab
bill писал(а):в ПРОТЕУСЕ работает всё нормально
Проект прицепи если не трудно.

Точно ли ноги выходами назначены ?

Добавлено: Чт апр 16, 2009 12:35:06
Yellow Tiger
Ты не до конца ответил на вопрос - ошибка одинакова в любом разряде, или нет? И что еще тебе известно о ситуации?
ikarab писал(а):Точно ли ноги выходами назначены ?
Так ведь в восьмерках-то эти ноги - выходы:
bill писал(а):... а вот "8" горит вся.

Добавлено: Чт апр 16, 2009 12:36:09
Yellow Tiger
.

Добавлено: Чт апр 16, 2009 12:39:01
bill
вот проект и вырезка назначения портов
Config Portb = Output
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Config Scl = Portc.5
Config Sda = Portc.4

Добавлено: Чт апр 16, 2009 12:41:43
ikarab
bill писал(а):вот проект и вырезка назначения портов
исходник хорошо - а код в МК лучше. Я про проверку в PROTEUSe например - т.е. как в самой прошивке.

Добавлено: Чт апр 16, 2009 12:43:41
bill
Yellow Tiger писал(а):Ты не до конца ответил на вопрос - ошибка одинакова в любом разряде, или нет? И что еще тебе известно о ситуации?
ikarab писал(а):Точно ли ноги выходами назначены ?
Так ведь в восьмерках-то эти ноги - выходы:
bill писал(а):... а вот "8" горит вся.
да влюбом разряде
вот у меня еть мысль что portb.1 поумолчанию фьюзами назначен но я незнаю как это исправить

Добавлено: Чт апр 16, 2009 12:45:59
bill
извините но в коде прошивки не чего не понимаю

Добавлено: Чт апр 16, 2009 12:56:11
ikarab
bill писал(а):извините но в коде прошивки не чего не понимаю
если .hex то в PROTEUS в свойствах МК выбирает дизассемблировать, а потом просто с мотрите что в регистрах МК вписано - например в DDR-ах.

Добавлено: Чт апр 16, 2009 13:01:25
Yellow Tiger
Такое впечатление, что в распайке индикатора ошибка.
А чем массив Х инициализируется?
bill писал(а):вот у меня еть мысль что portb.1 поумолчанию фьюзами назначен
Чем-чем он назначен?

Добавлено: Чт апр 16, 2009 13:05:17
bill
массив инициализируется

Restore Sigment
For I = 1 To 10
Read X(i)
Next I

Sigment:
Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111

Добавлено: Чт апр 16, 2009 13:07:38
bill
Yellow Tiger писал(а):
bill писал(а):вот у меня еть мысль что portb.1 поумолчанию фьюзами назначен
Чем-чем он назначен?
не спорю возможно фигню ляпнул

Добавлено: Чт апр 16, 2009 13:16:46
Yellow Tiger
Присмотрись к процедуре таймера - какая-то странная последовательность:
1. Зажигаем Portd.4 и гасим Portd.2
2. Зажигаем Portd.2 и гасим Portd.3 - то есть, Portd.4 продолжает гореть?
3. Зажигаем Portd.3 и гасим Portd.4 - то есть, Portd.2 продолжает гореть... Не тут ли собака порылась?

Код: Выделить всё

Tim_isr:
Portd.4 = 1
Portd.2 = 0
Portb = Seg1
Portb = Seg1
Waitms 2
Portd.2 = 1
Portd.3 = 0
Portb = Seg2
Portb = Seg2
Waitms 2
Portd.3 = 1
Portd.4 = 0
Portb = Seg3
Portb = Seg3
Waitms 2

Return

Добавлено: Чт апр 16, 2009 13:21:30
bill
да так оно и есть только не зажигаем а гасим на светящийся сегмент выходит ноль а на не светящиеся 1

Добавлено: Чт апр 16, 2009 13:24:07
bill
карочи проще наверно попробывать пересадить этот сегмент на другую ногу

Добавлено: Чт апр 16, 2009 13:54:35
Yellow Tiger
bill писал(а):да так оно и есть только не зажигаем а гасим
Ясно, общий катод. Распайку индикатора проверил? Хотя бы определить, где ошибка - в железе или в прошивке.