Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Was666
1 / 1 / 0
Регистрация: 10.06.2013
Сообщений: 32
1

Не работает в железе (работает в Proteus, ATmega8, ASM)

03.10.2015, 19:28. Просмотров 1117. Ответов 6
Метки нет (Все метки)

Прошивка работает в протеусе (V 7.7 SP 2), но не работает в железе. На счет фьюзов не совсем уверен (напишите какие нужны без кварца).
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
.INCLUDE "m8def.inc"
 
.DEF _tmp = R16
.DEF _out = R17
.DEF _ind = R18
.DEF _lim = R19
.DEF _mod = R20
.DEF _zer = R21
 
.CSEG
.ORG 0
RJMP RESET
 
.ORG INT0ADDR
    RJMP EXT_INT_0
    
.ORG INT1ADDR
    RJMP EXT_INT_1
 
RESET:;{
    
    LDI _tmp, Low (RAMEND)
    OUT SPL, _tmp
    LDI _tmp, High (RAMEND)
    OUT SPH, _tmp
 
    ;   76543210
    LDI _tmp, 0b01111111
    OUT DDRB, _tmp
    LDI _tmp, 0b00000000
    OUT DDRD, _tmp
    LDI _tmp, 0b11000000
    OUT GIMSK, _tmp
    
    LDI _tmp, 0x00
    LDI _ind, 0x00
    LDI _out, 0x00
    LDI _lim, 0x10
    LDI _mod, 0x01
    LDI _zer, 0x00
    LDI XL, Low (NUMBER * 2)
    LDI XH, High (NUMBER * 2)
    
    SEI
    
    RJMP MAIN
;}
 
EXT_INT_0:;{
    
    ADD _ind, _mod
    
    RCALL LOAD
    WH_0:
        SBIC PORTD, 2
    RJMP WH_0
    RETI
;}  
    
EXT_INT_1:;{
    
    SUB _ind, _mod
    
    RCALL LOAD
    WH_1:
        SBIC PORTD, 3
    RJMP WH_1
    RETI
;}
    
LOAD:;{
    
    TST _ind
    BRPL NOT_NEG
        ADD _ind, _lim
        NOT_NEG:
    
    CP _ind, _lim
    BRLO NOT_MOR
        SUB _ind, _lim
        NOT_MOR:
    
    MOV ZL, XL
    MOV ZH, XH
    ADD ZL, _ind
    ADC ZH, _zer
    LPM _out, Z
    OUT PORTB, _out
    
    RET
;}  
    
MAIN:;{
 
    RJMP MAIN
;}
;         0     1     2     3      4    5     6      7     8     9
NUMBER:
    .db 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f
    .db 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00
0
Миниатюры
Не работает в железе (работает в Proteus, ATmega8, ASM)  
Вложения
Тип файла: zip shem+asm.zip (77.2 Кб, 2 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2015, 19:28
Ответы с готовыми решениями:

Undefined symbol: reset (ASM, Proteus, ATMega8)
Не компилируется выдает вполне понятную ошибку но не могу исправить! Вот код программы: пишу...

работает в proteus,но не правильно работает на плате.
Помогите..написал одну програмку на КодеВижн, для теста кабелей,в протеусе всё работает...

Работает в протеусе но не работает в железе
Почему эта схема работает в Protheuse а в железе нет. Чего только не делал: резисторы подтягивающие...

Delphi и ASM - не работает вызов функции Invoke через asm
В Delphi не работает вызов функции Invoke через asm. часть кода: asm invoke...

6
Was666
1 / 1 / 0
Регистрация: 10.06.2013
Сообщений: 32
03.10.2015, 19:36  [ТС] 2
В железе после сброса горят все 8 сегментов, прерывания по одному ничего не меняют, если послать сразу оба (нажата кнопка INC и нажимаем кнопку DEC) выводит рандомное число (пока нажаты обе кнопки, когда нажата только одна, горят все 8 сегментов).
0
raxp
10201 / 6583 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
03.10.2015, 19:40 3
...нет керамики по питанию, не видно цепей антидребезга (код не смотрел).
0
Was666
1 / 1 / 0
Регистрация: 10.06.2013
Сообщений: 32
03.10.2015, 19:46  [ТС] 4
Запитано от USB, какую керамику ставить? Цепи антидребезга потом, пока вообще проводами замыкаю (собрано на макетке).

Кондер стоит электролит, 4.7 мкФ (на +5 и GND входных, в схеме его нету). Не помогло.
0
raxp
10201 / 6583 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
03.10.2015, 20:26 5
...электролиты ставятся для сглаживания, а керамика для подавления ВЧ бросков по питанию и самовозбуждения. Ставить 0.1 мкФ на ногу питания непосредственно или рядом на землю.

Цепи антидребезга потом
тогда бегом учить матчасть, как прочитаете - что это такое и физику его появления, потом и продолжим.

в схеме его нету
тем более не о чем разговаривать.
0
Was666
1 / 1 / 0
Регистрация: 10.06.2013
Сообщений: 32
03.10.2015, 20:46  [ТС] 6
Да, это все полезно конечно. Только бага в том, что прерывания "возникают" при подаче на ногу земли, а не +5, как у меня.

Тему можно закрывать.
0
raxp
10201 / 6583 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
03.10.2015, 21:15 7
Разбежался.
1
03.10.2015, 21:15
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2015, 21:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не работает код железе.
Всех приветствую. Собираюсь управлять яркостью свечения светодиодов одной кнопкой посредством ШИМ,...

lcd_puts_p не работает в железе
Вывожу строку на LCD (HD44780) с использованием библиотеки от Peter Fleury:...

В студии работает, в железе - нет
Добрый день! Столкнулся с проблемой - никак не могу сравнить принятые данные по uart с чем-либо и,...

CVAVR PWM не работает в железе
Подскажите пожалуйста в чем может быть проблема. Я написал простенькую программу(в учебных целях),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.