[PIC16F688 asm] hoe delen en modulo?

Pagina: 1
Acties:

  • Fl4sh3r
  • Registratie: Juni 2002
  • Laatst online: 26-03 21:19
Op school hebben we kennis gemaakt met PIC-programmeren, daarbij hebben we een leuk Dwarf-bordje.

Nu wil ik een pot-meter uitlezen (A/D converter) en de waarde op mn 3 7-segment display zetten.

Een waarde op de 7-segment-displays zetten lukt, de pot-meter uitlezen ook. Het probleem is echter dat ik de waarde van de pot niet kan opsplitsen in 3 getallen.

In een willekeurige andere programmeertaal zou zoiets kunnen:
code:
1
2
3
4
  a = 234; // pot-waarde 0 -255
  b = a%10; // laatste getal
  c = a/10%10; // middelste
  d = a/100%10; // eerste


Hoe is zoiets in assembler te doen?

Bij MPLab heb ik ook een c-compiler. Als ik een simpel stukje code schrijf en compile krijg ik een mooie .lst file, maar hier snap ik weinig van. Ik kan eruit halen dat twee functies essentieel zijn: awdiv en awmod. Deze kan ik echter nergens (ook niet met Google) terug vinden.

[ Voor 3% gewijzigd door Fl4sh3r op 05-11-2004 17:36 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:13

.oisyn

Moderator Devschuur®

Demotivational Speaker

FYI: de taal heet assembly, het programma wat je gebruikt om de tekst om te zetten naar machinecode is de assembler ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Fl4sh3r
  • Registratie: Juni 2002
  • Laatst online: 26-03 21:19
dat dacht ik ook, maar is me afgeleerd door mn docent... :S |:(

  • Fl4sh3r
  • Registratie: Juni 2002
  • Laatst online: 26-03 21:19
Dankzij tips van twee klasgenoten is het inmiddels gelukt.

Alle mensen die er tijd in hebben gestoken om een oplossing te vinden: bedankt :)

De oplossing:
code:
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
    ;================================================================
    ; initialisatie
    ;================================================================

    cblock
        value, d1,d2,d3
    endc

    MOVLW   d'255'
    MOVWF   value

    ;================================================================
    ; main loop
    ;================================================================

    MOVFW   value
    MOVWF   d1
    CLRF    d2
    CLRF    d3
getdigit3
    MOVLW   d'100'
    SUBWF   d1, F
    INCF    d3
    BTFSC   STATUS, C
        GOTO    getdigit3
    ADDWF   d1, F
    DECF    d3

getdigits2_1
    MOVLW   d'10'
    SUBWF   d1, F
    INCF    d2
    BTFSC   STATUS, C
        GOTO    getdigits2_1
    ADDWF   d1, F
    DECF    d2

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17-05 17:19
zal wel een libraryfunctie zijn denk ik

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.