PIC 512-elemes tablazat helyesbites

Miko Imre imre.miko at sysdata.siemens.hu
Wed Oct 20 09:52:00 CEST 1999


Miko Imre wrote:

> Kis Norbert wrote:
>
> > Sziasztok.
> >
> > Meg mindig a forgo kijelzom progijaval szivok, de mar vagy negyedik napja, s
> > belefaradtam.
> > A kovetkezo a gond:
> > Adott egy 512-elemes (64*8) karaktertabla. Szepen, RETW-vel, ugy ahogy
> > illik.
>
> ...
>
> Szia Norbert!
>
> ...
>
> Én egy 256-os táblázatot használok és igazítom 8 bites határra:
>
>   ORG 2FFh
>   addwf PCL,f
>   retlw 0
>   retlw 1
>   ...
>
> Imre

Az elõzõ levelemben elkövettem egy hibát, a megírt függvénynek
csak a lényegét szerettem volna bemásolni, de pont az maradt
ki :-(

Álljon itt az egész fgv, hátha más is tudja használni.
Ez egy szinusztáblát valósít meg. 256 értékbõl áll a tábázat.
bemenetként az AARGB1:AARGB0 -ba kapja a a szöget, amely 0-1024 értéke
megfelel a 0-360 foknak. A W-ben adja vissza az amplitudót, a SIGN-ben pedig
az elõjelet.


  ORG 2F7h                              ; fontos az igaztás
sinus  clrf SIGN  ; set signum
  btfsc AARGB1,1
  incf SIGN,F

  movlw HIGH sinus_table          ; ez itt a lényeg, a PCLATH-ba betölti a PC felsõ
  movwf PCLATH                      ; bitjeit, ami az addwf PCL,F -nél kerul a PC-be

  movf AARGB0,W
  btfsc AARGB1,0
  sublw 255  ; w = 255-w

  addwf PCL,F
sinus_table                                 ; a cim itt 0300h - fent ugy kell igaztani, hogy itt 256
byteos
                                                  ; hatar legyen
 include "sintab.inc"                     ; ez tartalmazza az 256 retlw (ezt egy progival generálom)

;**************************************************************************


remélem most már ok, két ilyet kell csinálnod.
Ajánlom még a Microchip AN556 -os Application Note -ját.

Imre





More information about the Elektro mailing list