Hallo CO'ers

ik zou de bit's van een byte willen verschuiven naar links, maar dacht dat dit met

Lichtjes = Lichtjes >> 1

zoals je uitgangen kan schuiven zou lukken.
Lukt dit niet of ben ik fout?
Hierbij mijn volledig programma.

Device 16F628A
Config INTRC_OSC_NOCLKOUT, wdt_off, pwrte_on, lvp_off, mclre_off, boden_off 

ALL_DIGITAL TRUE
 
;uitgangen 
;        76543210
PORTA = %00000000
PORTB = %00000000
TRISA = %11111000    
TRISB = %11111111    
 
Symbol ShiftOpslag = PORTA.0
Symbol ShiftClk    = PORTA.1
Symbol ShiftData   = PORTA.2

Dim Lichtjes As Byte
 

Lichtjes = %00000001 
;Hoofdprogramma 
While 1 = 1
  SHOut ShiftData, ShiftClk, lsbfirst, [Lichtjes]
  PulsOut ShiftOpslag, 5
 
  DelayMS 500

Lichtjes = Lichtjes >> 1 

Wend 

Ja je doet het verkeerd...

Lichtjes = Lichtjes << 1;

Dit zou werken in "C" Wat je verder laat zien ziet er uit alsof het basic zou kunnen zijn, dus of basic ook de << operator kent weet ik niet.

gewoon met twee vermenigvuldigen gaat ook natuurlijk.

Met twee vermenigvuldigen gebruikt veel meer instructies dan schuifoperaties, of de compiler zou zo intelligent moeten zijn om een vermenigvuldiging met twee te vertalen in een schuifoperatie. Dat weet je natuurlijk nooit wat hij zal doen.

Ofwel een stukje inline assembler met "RLF Lichtjes,1" in.

Eventjes de handleiding van de compiler er bij nemen voor de syntax om een stuk assembler in de code te voegen.

Of gebruik C. Veel handiger en krachtiger om mee te werken.

Op 1 januari 2011 22:38:44 schreef rew:
Ja je doet het verkeerd...

Lichtjes = Lichtjes << 1;

Dit zou werken in "C" Wat je verder laat zien ziet er uit alsof het basic zou kunnen zijn, dus of basic ook de << operator kent weet ik niet.

Is in Proton+ geen probleem.

Op 1 januari 2011 22:58:50 schreef Peter Claus:
Met twee vermenigvuldigen gebruikt veel meer instructies dan schuifoperaties, of de compiler zou zo intelligent moeten zijn om een vermenigvuldiging met twee te vertalen in een schuifoperatie. Dat weet je natuurlijk nooit wat hij zal doen.

In Proton+ wel, je kan de assembly nalezen, en Proton+ is zo wel slim.

Of gebruik C. Veel handiger en krachtiger om mee te werken.

Niet in 2011 (ook niet in de jaren daarvoor).

[Bericht gewijzigd door Henry S. op (24%)]

Als ik mijn "Lichtjes = Lichtjes << 1" boven mijn delay zet werkt het perfect, eronder niet. Wat doet die delay dan waardoor het niet werkt ???

Een delay doet letterlijk een tijd lang niets anders dan wachten.

Dat dacht ik ook, maar raar maar waar doet hij het niet als ik het na mijn Delay plaats. Eigenlijk maakt het mij niets uit, ervoor of erna, maar is toch vreemd