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

BASCOM i Rotate - pytanie o poprawność kodu

bodd 13 Kwi 2009 21:22 2041 12
  • #1 6410906
    bodd
    Poziom 12  
    Witam.
    Czy to jest poprawne?

    $regfile = "m8def.dat"
    $crystal = 8000000
    
     Config Portb = Output
     Portb = &B00000001
    Do
    Rotate Portb , Left
    Waitms 100
    Loop
    End



    To tyle zostało po skróceniu programu który nie odpalił.
  • #2 6411055
    Konto nie istnieje
    Poziom 1  
  • #3 6411424
    bodd
    Poziom 12  
    Witam.
    Dzięki za szybką odpowiedź ale....
    moja frustracja sięga zenitu.
    To po prostu nie działa w real.Na domiar tego podobny kod tylko z waitms przed rotate działa poprawnie.
    Ps.próbowałem zaproponowany kod ale nic(nie wysterowałem portu).
    Głupia sprawa i banalna ale nigdy nie miałem podobnego przypadku stad moje pytanie.
  • #5 6412720
    Logan
    Poziom 30  
    Proponuje zapoznać sie ze składnią polecenia "Rotate". Wtedy będzie działać.
  • #6 6415242
    bodd
    Poziom 12  
    Witam.
    Składnia według mnie jest jak najbardziej prawidłowa( co do kolegi Logan to prosiłbym o szczegóły bo niebardzo wiem o co chodzi)
    Aby było ciekawie to poniższy kod działa,tylko dlaczego?
    Config Portb = Output
    Portb = &B00000001
    Config Portd = Output
    Portd = &B11111110
    Do
    Waitms 25
    Rotate Portd , Left
    Rotate Portb , Right
    R = Rnd(10)
    Loop
    End

    Aha z bitami fuse i innymi nie mieszam i nie mieszałem
  • #7 6415298
    Konto nie istnieje
    Poziom 1  
  • #8 6415432
    bodd
    Poziom 12  
    Witam.
    Dziękuje za wszystkie podpowiedzi.Oczywiście sprawdziłem wszystkie zaproponowane przez Was możliwości ale nie pomogło.Błąd leżał jednak po mojej stronie(tak to jest jak sie ślęczy po nocach przed kompem) .W ustawieniach kompilatora w zakładce output zaznaczyłem(??????)
    SWAP WORD!!!!!!!!!!!!!!!!!!!.
    Niech będzie to przestroga dla mnie i innych,program sie kompilował i symulował poprawnie jednak nie działał jak należy,na dodatek podobny kod juz był ok.Nie jestem w stanie stwierdzić dlaczego ale na tym etapie mojego zaawansowania nie wnikam w takie szczegóły .Problem został rozwiązany i za pomoc dziękuje.
    Swoją drogą zastanawiam sie ,ponieważ jestem po poważnej infekcji systemu czy to mogło być powodem takiego działania.Czy komukolwiek z Was zdarzyło sie po zarazeniu systemu dziwna lub niepoprawna praca z Bascomem.
  • #9 6415465
    Konto nie istnieje
    Poziom 1  
  • #10 6418981
    Logan
    Poziom 30  
    bodd napisał:
    Witam.
    Składnia według mnie jest jak najbardziej prawidłowa( co do kolegi Logan to prosiłbym o szczegóły bo niebardzo wiem o co chodzi)


    Witam

    Wyczytałem w helpie:
    
    Składnia:
    
    ROTATE zmienna , LEFT | RIGHT [, liczba_przesunięć ]
    


    Tak więc wydawało mi się, że powinno być:

    
    Config PortB=Output
    Dim zmienna as Byte
    zmienna=&B00000001
    Rotate zmienna, Right
    PortB=zmienna
    
  • #11 6419127
    Konto nie istnieje
    Poziom 1  
  • #12 6419539
    Logan
    Poziom 30  
    atom1477 napisał:
    Nie.
    To działa i na portach (ogólnie rejestrach IO).


    Teraz to ja też jestem mądry :)
  • #13 6419603
    Konto nie istnieje
    Poziom 1  
REKLAMA