Author Topic: Ми треба ваше мислење за: IF-ELSE-ENDIF за PIC  (Read 894 times)

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
Ми треба ваше мислење за: IF-ELSE-ENDIF за PIC
« Opened on 03.01.2011, Monday, 18:33:28 (Edited 03.01.2011, Monday, 19:56:49) »
здраво дали може некој да објасни како се користат овие директиви кај пиковите  :)

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
Одг: IF-ELSE-ENDIF за PIC
« Reply #1 on 03.01.2011, Monday, 18:57:39 »
среди го насловот
види ми го потписот
Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male

Offline bicikle

  • Топ Експерт
  • *****
  • Posts: 4080
  • Gender: Male
Вака, колку што знам од другите прог. јазици иф е услов, елсе што ако не се исполни условот, едниф крај на условот(крај на иф).

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
значи како шо кажа членот над мене тоа се услови, ако се постигне тој услов да се направи нешто во спротивно да се направи нешто друго .. енд иф ти е команда за крај на условот
еве нешто во microBasic за 12Ф675 што имав пишувано пред некое време
значи ова е само тој условот

 napred1:
      if gpio.3 = 1                  ' Ako se pritisni SHIFT kopceto site pinovi se vlezni
      then TRISIO = 1
      if gpio.0 = 1                  'Ako se pricni kopceto N odi napred
      then IzlezA = 1 IzlezC = 1
      Delay_ms(500)
      else TRISIO = 0 TRISIO.3 = 1   'ako ne se pritisni ostanuvaat isti
      Delay_ms(100)
        end if
         end if
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
ох се извинувам зоборавив да нагласам дека се распаршувам за програмскиот јазик асенблер
би ве замолил за помош

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
вака некако е тоа истото од погоре во асемблер
кај шо има точка запирка тоа ти е програмата во бејзик .. а другото е асемблер

5_led.mbas,17 ::                 if gpio.3 = 1                  ' Ako se pritisni SHIFT kopceto site pinovi se vlezni
        BTFSS      GPIO+0, 3
        GOTO       L__main4
;12F675_led.mbas,18 ::                 then TRISIO = 1
        MOVLW      1
        MOVWF      TRISIO+0
;12F675_led.mbas,19 ::                 if gpio.0 = 1                  'Ako se pricni kopceto N odi napred
        BTFSS      GPIO+0, 0
        GOTO       L__main7
;12F675_led.mbas,20 ::                 then IzlezA = 1 IzlezC = 1
        BSF        GPIO+0, 0
        BSF        GPIO+0, 1
;12F675_led.mbas,21 ::                 Delay_ms(500)
        MOVLW      3
        MOVWF      R11+0
        MOVLW      138
        MOVWF      R12+0
        MOVLW      85
        MOVWF      R13+0
L__main9:
        DECFSZ     R13+0, 1
        GOTO       L__main9
        DECFSZ     R12+0, 1
        GOTO       L__main9
        DECFSZ     R11+0, 1
        GOTO       L__main9
        NOP
        NOP
        GOTO       L__main8
;12F675_led.mbas,22 ::                 else TRISIO = 0 TRISIO.3 = 1   'ako ne se pritisni ostanuvaat isti
L__main7:
        CLRF       TRISIO+0
        BSF        TRISIO+0, 3
;12F675_led.mbas,23 ::                 Delay_ms(100)
        MOVLW      130
        MOVWF      R12+0
        MOVLW      221
        MOVWF      R13+0
L__main10:
        DECFSZ     R13+0, 1
        GOTO       L__main10
        DECFSZ     R12+0, 1
        GOTO       L__main10
        NOP
        NOP
;12F675_led.mbas,24 ::                 end if
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
извини јас сум само почетник па наможам да го разберам твојот код па ако можеш да ми покажеш на пример со овој код како би изгледала таа директива           




            #DEFINE   A0      PORTA,0
            #DEFINE   A1      PORTA,1                     
            #DEFINE A2      PORTA,2   
               

         cblock   0x20   
         F1
         F2
         F3      
         endc
;**********************************************************************


   org      0x0000   

   banksel   ANSEL
   clrf   ANSEL
   clrf   ANSELH

   
   banksel   TRISB   
   clrf   TRISB   
   movlw   B'00000111'
   movwf   TRISA
   banksel   PORTA
   clrf   PORTB   
   clrf   F1
   clrf   F2   


Poc
   

      btfss   A0
      goto   Exit
      bsf   PORTB,0
      bcf   PORTB,1
      goto   Exit1
Exit
   
      btfsc   A0
      goto   Exit1
      bsf   PORTB,1
      bcf   PORTB,0

Exit1   
   
   goto   Poc

   end

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
незнам јас многу асемблер, чекај некој поискусен она погоре е само преведено од еден во друг јазик :)
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
ок фала како и да е

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Ова не е MASM ниту TASM, ниту HAL... извинете, не можам да помогнам :S. Има некои додатни команди кои не знам што се :S. И јас сеуште ја учам ASM за PIC-ови :S.
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline deophorant

  • Стручњак
  • ***
  • Posts: 300
извини јас сум само почетник па наможам да го разберам твојот код па ако можеш да ми покажеш на пример со овој код како би изгледала таа директива           




            #DEFINE   A0      PORTA,0
            #DEFINE   A1      PORTA,1                     
            #DEFINE A2      PORTA,2   
               

         cblock   0x20   
         F1
         F2
         F3      
         endc
;**********************************************************************


   org      0x0000   

   banksel   ANSEL
   clrf   ANSEL
   clrf   ANSELH

   
   banksel   TRISB   
   clrf   TRISB   
   movlw   B'00000111'
   movwf   TRISA
   banksel   PORTA
   clrf   PORTB   
   clrf   F1
   clrf   F2   


Poc
   

      btfss   A0
      goto   Exit
      bsf   PORTB,0
      bcf   PORTB,1
      goto   Exit1
Exit
   
      btfsc   A0
      goto   Exit1
      bsf   PORTB,1
      bcf   PORTB,0

Exit1   
   
   goto   Poc

   end

Еве ти го подоле кодот преведен во "C". Колку што можам да сватам тоа ти требаше.


Poc                                            while(1)
                                             {


      btfss   A0                         if (PORTA,0 == 1)
      goto   Exit                       {
      bsf   PORTB,0                    bsf PORTB,0   
      bcf   PORTB,1                    bcf PORTB,1
      goto   Exit1                      }
Exit                                                else
                                                
      btfsc   A0                          if (PORTA,0 == 0)
      goto   Exit1                      {
      bsf   PORTB,1                      bsf PORTB,1
      bcf   PORTB,0                      bcf PORTB,0
                                                       }
Exit1   
   
   goto   Poc                               }

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
фала на сите што се обидевте да ми помогнете ама ништо од муабетот изгледа најдобор да поцнам да учам Ц или Бејзик ама прашањето е како да се почне и јас како и некои од вас со нетрпение го чекам курсот за PIC ама ...  ???

Offline bicikle

  • Топ Експерт
  • *****
  • Posts: 4080
  • Gender: Male
Еве нешто ц++