Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Курсач на Atini2313, Поясните пожалуйста код 
:(
    Опции темы
Artik666
Дата 19.12.2014, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.12.2014

Репутация: нет
Всего: нет



Доброе время суток. Имеется программный код на асме для Lan тестера. Проект взят с данного ресурса: http://eldigi.ru/articles/tester_dlya_lan_kabelya. Кто нибудь может мне пояснить программный код и его принцип работы. По возможности детским языком. Уровень знаний очень мал в этой области(  А еще за одно может мне кто нибудь подскажет для чего нужны 3 светодиода подключенных к 2,3,6 ноге? Надеюсь на вашу помощь. 


; Test rj45 cable, by Stergiopoulos B. For any AVR. Here is for ATtiny2313
; ajust internal clock to 8MHz or change accordingly Td value below.
; *****************************************************************************
; The mpu produces successive outputs at portD, where the LAN-cable is connected.
; So we can tell if all wires of cable are connected and in which order.
; Just watch the glow order of the LEDs. If a straight cable is connected between
; connectors A and B, then the LEDs will glow in successive order.
; If a cross cable is connected, then the glow order will be as noted on the board,
; i.e. 1,2,7,4,5,8,3,6. If any other glow order occurs, it means that the cable
; is not wired correctly. If one ore more LEDs don't glow, then we have corresponding
; lack of contact.
; An extra remote unit with only B connector (B2) can be used, in case that both 
; ends of the cable cannot be brought close enough to be connected on the same board.
; See diagram.

.NOLIST
.INCLUDE "tn2313def.inc"
.LIST

; Code starts here
.CSEG
.ORG $0000

.def    temp1    = r16
.def    T1        = r17
.def    T2        = r18
.def    T3        = r19
.def    cnt        = r29    ; binary counter 0-7
.def    indexL    = r30    ; these registers are for lpm instruction
.def    indexH    = r31

.equ    Td        = 3    ; delay time

rjmp RESET                ; Reset Handler

; ****************** routines *****************************************

delay:    ser        T1        ; long delay
        ser        T2
        ldi        T3,Td
sdel1:    dec        T1
        brne    sdel1
        ser        T1
        dec        T2
        brne    sdel1
        ser        T2
        dec        T3
        brne    sdel1
        ret

; ******************** Main program ********************************

RESET:    ldi        r16,LOW(RAMEND)    ;Initiate Stackpointer.
        out        SPL,r16
        ser        temp1
        out        ddrA,temp1
        out        ddrB,temp1
        out        ddrD,temp1
        out        portB,temp1
        clr        temp1
        out        portA,temp1
        out        portD,temp1
        rcall    delay        ; test LEDs

start:    ldi        indexH,HIGH(2*leds)
        ldi        indexL,LOW(2*leds)
        clr        cnt
st1:    lpm        temp1,z+
        out        portB,temp1
        out        portD,cnt
        inc        cnt
        cpi        cnt,8
        brne    st2
        clr        cnt
st2:    rcall    delay
        cpi        temp1,128    ; end of row?
        breq    start
        rjmp    st1            ; take next data

leds:    
.db        1, 2, 4, 8, 16, 32, 64, 128

Это сообщение отредактировал(а) Artik666 - 19.12.2014, 23:44
PM MAIL   Вверх
Romikgy
Дата 20.12.2014, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Artik666 @  19.12.2014,  22:40 Найти цитируемый пост)
 для чего нужны 3 светодиода подключенных к 2,3,6 ноге

отображает какой провод подключен (счетчик проводов)

PS имхо вашу тему надо в "центр помощи"


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.