ChipCAD fórum
Kezdőlap Bejelentkezés Profil Keresés
Fórum kezdőlap
Saját fórum
ChipCAD honlap
Bejelentkezés
Kijelentkezés
Regisztráció
Saját profil
Postaláda
Előfizetések
Címjegyzék
Keresés a fórumban
Keresés a GYIK-ban
Fórum tag keresése
Új üzenetek

A cog saját counterének használata

 
Bejelentkezve mint: Guest
E témát jelenleg a következők olvassák: nincs
  Nyomtatható változat
Összes fórum >> [Parallax termékek] >> Propeller >> A cog saját counterének használata Lap: [1]
Felhasználónév
Üzenet << Régebbi témák   Újabb témák >>
 
theoz

 

Üzenetek: 15
Belépés: 2008.10.2.
Státusz: nem elérhető

A cog saját counterének használata  

Üdv!

A helyzet az, hogy az a fránya számláló sem asszembliben, sem spinben nem akar műküdni.
Lehet hogy nem sikerült felfognom a koncepciót teljesen, ami nekem lejött az a következő:

Az érintett regiszterek a ctra, a frqa, és a phsa. A ctra-t beállítom %11111 módba, tehát elvileg minden órajelnél hozzá kellene adódnia a phsa regiszter értékéhez a frqa regiszter értékének, (nekem ez esett le) ellenben nem történik semmi:


CON                            
        _CLKMODE = XTAL1 + PLL16X             'órajel 80MHz                
        _XINFREQ = 5_000_000                  
 
obj
var
pub    init
  coginit(cogid,@main_asm,0)

dat
			org 0
main_asm
                       	or      dira,setledo            'láb beállítása kimenetnek
                        and     outa,clrledo            'láb törlése
                        mov     phsa,#0                 'phsa nullázása
                        mov     frqa,#1                 'frqa = 1
                        movi    ctra,#%011111000        'ctra beállítása (always)
main_loop               
                        cmpsub  phsa,period     wc      'phsa összehasonlítása a periódus értékkel
        if_nc           jmp     #main_loop              'ha psha kisebb, ugrás a hurok elejére
                        and     outa,setledo    nr,wz	'a led vezérlő láb invertálása
        if_z            or      outa,setledo        
        if_nz           and     outa,clrledo    
                                           
                        jmp     #main_loop    


setledo       long %00000000100000000000000000000000	'led a 23. jábon
clrledo       long %11111111011111111111111111111111
period        long 100000000            


Szóval itt a lednek villognia kellene, de semminem történik. Viszont ha a
         cmpsub  phsa,period     wc

sor elé beszúrok egy
         add     phsa,#1

utasítást, akkor elkezd működni, persze valamilyen egészen más időzítéssel. Ebből arra következtetek, hogy a hiba oka az phsa regiszter nem növekszik.

Ha valaki rávilágítana, hol vétettem az nagyon örömteli kenne.

Köszönettel:
theoz
2009.12.27. 20:45:58 ID: 3893
Lap:   [1]
Összes fórum >> [Parallax termékek] >> Propeller >> A cog saját counterének használata Lap: [1]
Ugrás:





Új üzenetek Olvasott üzenetek
Népszerű téma / Új üzenetek Népszerű téma / Olvasott üzenetek
Zárolt / Új üzenetek Zárolt / Olvasott üzenetek
 Új téma indítása
 Válasz az üzenetekre
 Új szavazás indítása
 Szavazat küldése
 Saját üzenetek törlése
 Saját témák törlése
 Üzenetek értékelése




Forum Software powered by ASP Playground Advanced Edition 2.3
Copyright © 2000 - 2003 ASPPlayground.NET

0.016