Кто знает ассемблер, помогите плиз!!!

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by -=NoVeNkIy=-, 11 Apr 2009.

  1. -=NoVeNkIy=-

    -=NoVeNkIy=- New Member

    Joined:
    8 Dec 2008
    Messages:
    23
    Likes Received:
    2
    Reputations:
    0
    Ситуация следующая: есть микросхема (подробности о ней давать не буду), используемая для сигнализации. К ней подключается сотовый телефон. На плате имеются клеммные колодки: (+-) и 4 шлейфа, к которым подключаются датчики (датчик движения, открытия двери...и т.п.) при размыкании контакта от шлейфа, телефон отправляет смс на номер, забитый в симке. Это техническая сторона вопроса. Теперь о главном - на плате имеется контроллер, в который заливается прошивка. Глюки начались следующие: при постановке на охрану номера телефона приходит смс о тревоге на последнем из замкнутых шлейфов, хотя все шлейфы в норме. если ставлю 4 шлейфа - о четвертом, 3 - о третьем и т.п. проверял на арзных платах - дело в прошивке. прошивка на ассемблере. если кто сможет помочь - напишите плиз...скину саму прошивку, может что подправите. Очень надеюсь на вашу помощь.
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    как вариант проверить цикл опроса датчиков.
    т.е. ошибка может быть в условии провекри кол-ва датчиков.
    Тут зависит от последовательности их номеров.
    Но всё равно гдето ты привышаеш это значения на 1.
    ищи места cmp *,кол-во датчиков и далее команду
    j*
    там может быть условие типа jne - не равно, je - равно. А также меньше или меньше или равно. Вот в этом условии скорее всего и ошибка.
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ну или порядок нумерации с 0 или с 1 неверный.
    т.е. логика ошибки такого цикла - провекра датчика следующего за последним. А так как его не существует то тут и срабатывает тревога типа поломка датчика или чтото типа того.
    Ты для теста попробуй сделать разрыв на 1-м датчике и поглядеть какой датчик сработал.
     
  4. -=NoVeNkIy=-

    -=NoVeNkIy=- New Member

    Joined:
    8 Dec 2008
    Messages:
    23
    Likes Received:
    2
    Reputations:
    0
    немного уточню...ложная тревога срабатывает только при первой постановке на охрану...если поставить, принять смс с тревогой, снова снять и поставить - все работает как часы )) а при первой постановке, когда уже пришло смс, потом можно хоть замыкать, хоть размыкать...хоть матом кричать - результата не будет никакого (
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Значит гдето регистры какието не инициализированы
     
    1 person likes this.