Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Abi vaja basic'us

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Abi vaja basic'us

    Oleks vaja, et PORTB.7 aktiveerimisel("1") vahetukisd PORTA.0 ja PORTA.1 signaalid, st korra on PORTA.0 "1", PORTA.1 "0" ja uuesti PORTB.7-sse signaali saamisel PORTA.0 "0", PORTA.1 "1".

    Selle koodiga teeb PIC seda suvaliselt. On kellegil ideid kuidas asja teha? või seda koodi parandada?
    program vahetus

    dim n,k as integer

    sub procedure vaheta1
    PORTB.0=0
    PORTB.1=1
    end sub

    sub procedure vaheta2
    PORTB.1=0
    PORTB.0=1
    end sub

    main:

    TRISA = %00000000
    TRISB = %10000000
    n=0
    PORTB=%00000001
    OPTION_REG=%10000000
    pea:
    if PORTB.7 = 1 then
    PORTB=%00000000
    k=n
    if k mod 2=0 then
    vaheta1
    end if
    if n mod 2=1 then
    vaheta2
    end if

    n=n+1
    end if
    goto pea
    end.

    #2
    Vs: Abi vaja basic'us

    Kuskohas sa lüliteis (sisendeid) kaalud? Nupud annavad mitu vajutust korraga ja seepärast lülitubki suvaliselt.
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    Comment


      #3
      Vs: Abi vaja basic'us

      vaata näiteid.
      anna pascali koodi kuna mu basic on lilliks läinud peale pascali lisentis installimist.
      used rom 34
      ja ma oleks seda loogikaga teinud pic liiast
      ps pascali ja basicu vahe on ainult reavahetus märgid ja selline stuff, see kood peax peale modimist ka basicus töötama

      program vahetus;
      begin
      TRISA := $80;
      TRISB := $80;
      PORTB := 1;
      PORTA := 1;
      while true do
      if TestBit(PORTB, 7) = 1 then
      begin
      PORTB := not PORTB; { Kuna väljundid on ainult 0-1 siis sisuliselt vahetuvad bittid}
      repeat
      begin
      nop ;
      end;
      until TestBit(PORTB, 7) = 0 ;
      end;

      if TestBit(PORTA, 7) = 1 then
      begin
      PORTA := not PORTA; { Kuna väljundid on ainult 0-1 siis sisuliselt vahetuvad bittid}
      repeat
      begin
      nop ;
      end;
      until TestBit(PORTA, 7) = 0 ;
      end;
      end.
      Modelleerimises ja tootmises kehtivad:
      1. Avariikindel vooluring lühistab kõik teised.
      2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

      Comment

      Working...
      X