logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Program do DsPic w asm. Invalid operands specified (mov Count,LATB).

Prymulka 12 Mar 2006 16:13 1398 4
REKLAMA
  • #1 2405852
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Witam
    Właśnie zacząłem pisać pierwszy program pod DsPic w asm. Niestety na stronie Microchipa są tylko przykłady w C. Pościągałem więc przykłady dla PIC16 i PIC18 i zacząłem poprawiać wszystkie błędy kompilacji pod swój procek. Niestety został mi jeszcze jeden przy wystawianiu stanu zmiennej Count do portu i przypuszczam że wynika to z 16-bit architektury procka.

    KOD PROGRAMU

    .equ __30F4013, 1
    .include "p30F4013.inc"

    ;************************************************************
    ; variables

    .equ Count, 0x000

    ;************************************************************
    ; reset vectors

    .org 0x00000 ; Reset Vector
    goto Start

    ;************************************************************
    ;program code starts here

    .org 0x00020 ; Beginning of program EPROM
    Start:
    clr LATB ; Clear PORTB output latch
    clr TRISB ; Make PORTB pins all outputs
    clr Count ; Clear Count
    Loop:
    btsc PORTD,#2 ; Has S2 been pressed? (Normally high, goes low when pressed.)
    goto Loop ; No, check again

    IncCount:
    inc Count ; Increment Count
    mov Count, LATB ; move Count to PORTB

    Debounce:
    btss PORTD,#2 ; Has key been released?
    goto Debounce ; No, wait some more
    goto Loop ; yes, wait for next key press


    .END ; directive indicates end of code

    BŁĄD
    buttons.s:29: Error: Invalid operands specified ('mov Count,LATB').
    buttons.s:29: Check operand #2.
  • REKLAMA
  • #2 2593205
    yancio
    Poziom 11  
    Posty: 7
    Witam, jak postepy z programowaniem tego bydlaka?? tez mam do napisania troche na ten procek, mam nadzieje ze bede mogl liczyc na jakas drobna pomoc bo procki tak mlode ze w internecie jeszcze nie za wiele jest o nich :/
    Takie pytanie na poczatek: czy robiles cos w nim typowo w DSP, czy uzywales 12b A/DC, czy cos moze na przerwaniach puszczales??
  • REKLAMA
  • #3 2593617
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Witam!
    Jak mam czas to go odpalam. Walcze cały czas z 30f4013. ADC juz odpalilem. Teraz robie PWM, w weekend powinienem skończyć. Po uarcie mam podłączoną ATMEGĘ z wyświetlaczem graficznym więc coś będę robił w tym kierunku a następnie podłączę pamięć dataflash. O efektach prac dam znać. Niestety na tym forum jest mały zainteresoweanie dsPICami.
  • REKLAMA
  • #4 2595921
    winIO
    Poziom 13  
    Posty: 37
    Pomógł: 4
    Ocena: 3
    Nie wiem czy nie napisze bzdur, alewlasnie sobie looknalem w dokumentacje i teraz :

    mov Count, LATB ; move Count to PORTB

    BŁĄD
    buttons.s:29: Error: Invalid operands specified ('mov Count,LATB').
    buttons.s:29: Check operand #2.


    Z tego co widze, to Count jest Rejestrem z pamieci RAM. Tak samo LATB. W zbiorze instrukcji DS-PICa nie ma instrukcji MOV przenoszacej dane pomiedzy dwoma rejestrami pamieci danych. Kompilator w tych dwóch komunikatach przywala sie tylko do tej linii, czyli do linii 29 i prosi Cie o zweryfikowanie poprawnosci parametru, ktory stoi za przecinkiem.


    pozdrawiam
  • #5 2596156
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Błąd już znalazłem, to dosyć stary post. Nawet nie pamiętam dobrze co było. Teraz piszę w C i nie narzekam dopiero jak przyjdzie potrzeba to wezme sie za asm.
REKLAMA