derleme prolemi P16F628A

Başlatan tolgaa, 04 Nisan 2012, 18:39:29

tolgaa

bu bir dtmf devre yazılımıdır derlemede hata veriyor  herhalde bir yerleri eksik yardım edebilirmisiniz. :(


'****************************************************************

'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 04.04.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'intcon=%10100000
option_reg=%00000000
@ device pwrt_on & MCLR_OFF
@ device INTRC_OSC_NOCLKOUT
@ device WDT_OFF
'@ device protect_on & cpd_on
define osc 4
cmcon=7

TRISA = %00111100      ' PORTA   giriş
TRISB = %00000111      ' PORTB çıkış
porta=0
portb=0       


'********************Giriş çıkış tanımlamaları **********
alarmac var portb.1
alarmkapat var portb.2

role1 var porta.6
role2 var porta.7
role3 var porta.0
role4 var porta.1

STD   var portb.0
Q1    var porta.2
Q2    var porta.3
Q3    var porta.4
Q4    var porta.5
STDled var portb.3


'***********************************************************************
giris var byte
dvm01    var byte
satir    var byte
bekle    var word
Ssifre   var word
sifreRL1on   var word
sifreRL1off  var word

sifreRL2on   var word
sifreRL2off  var word

sifreRL3on   var word
sifreRL3off  var word

sifreRL4on   var word
sifreRL4off  var word

sifreRL5on   var word
sifreRL5off  var word

sifreRL6on   var word
sifreRL6off  var word

sifreRL7on   var word
sifreRL7off  var word

sifreRL8on   var word
sifreRL8off  var word

sifretumRLon   var word
sifretumRLoff  var word

sifredemoon   var word
sifredemooff   var word

demokont   var byte

'****************************************************************************
'******** ************************ ********************
gosub sifirla
bekle=0
STDled=0
dvm01=0
satir=0
sifreRL1on=1011  'role 1 açma kodu
sifreRL1off=1010 'role 1 kapatma kodu

sifreRL2on=2021  'role 2 açma kodu
sifreRL2off=2020 'role 2 kapatma kodu

sifreRL3on=3031  'role 3 açma kodu
sifreRL3off=3030 'role 3 kapatma kodu

sifreRL4on=4041  'role 4 açma kodu
sifreRL4off=4040 'role 4 kapatma kodu

sifretumRLon=9531  'tüm role açma kodu
sifretumRLoff=9530 'tüm role kapatma kodu

'////////////////////////// \\\\\\\\\\\\\\\\\
basla:
      if std=1 then gosub kodcoz
      if std=0 then dvm01=0:STDled=0
      bekle=bekle+1
      pauseus 100
      if bekle>30000 then satir=0:Ssifre=0
goto basla

'************************* ****************
kodcoz:
STDled=1
      if dvm01=1 then return
      dvm01=1:bekle=0
        giris=%00111100 & porta
        giris=giris>>2
       if giris=10 then giris=0
       if giris=11 then satir=0:Ssifre=0:return             '* karakteri
      satir=satir+1
       
      if satir=1 then Ssifre=giris*1000
      if satir=2 then Ssifre=Ssifre+giris*100
      if satir=3 then Ssifre=Ssifre+giris*10
      if satir=4 then Ssifre=Ssifre+giris

       if giris=12 then             '# karakteri
            satir=0
            if Ssifre=sifreRL1on then role1=1
            if Ssifre=sifreRL1off then role1=0
           
            if Ssifre=sifreRL2on then role2=1
            if Ssifre=sifreRL2off then role2=0

            if Ssifre=sifreRL3on then role3=1
            if Ssifre=sifreRL3off then role3=0

            if Ssifre=sifreRL4on then role4=1
            if Ssifre=sifreRL4off then role4=0

            if Ssifre=sifretumRLon then role1=1:role2=1:role3=1:role4=1
            if Ssifre=sifretumRLoff then role1=0:role2=0:role3=0:role4=0
           
       endif
     

return
demokayit:
    write 10,demokont
    pause 10
    role1=1:role2=1:role3=1:role4=1
    pause 500
    role1=0:role2=0:role3=0:role4=0
    pause 500
    if demokont=0 then return
    role1=1:role2=1:role3=1:role4=1
    pause 500
    role1=0:role2=0:role3=0:role4=0
    return

'************* SIFIRLA **************
sifirla:
return
'******************************************************************

END

Maxim


tolgaa

warning[207]c:\pic\dtmf08.asm 99 : found label after column 1. (device)
eror[122]c:\dtmf.asm 99:ıllegal opcode (pwrt_on)
warning[207]c:\pic\dtmf08.asm 105 :found label after column 1. (device)
eror[122]c:\dtmf.asm 105 : ıllegal opcode (osc_noclkout)
warning[207]c:\pic\dtmf08.asm 111 :found label after column 1. (device)
eror[122]c:\dtmf.asm 111 ıllegal opcode (wdt_off)

ibrsel

Kullandığınız FUSE ayarları ile ilgili hata alıyorsunuz..Bu tanımlamalarınızı değiştirin..
Alıntı Yap
@ device pwrt_on & MCLR_OFF
@ device INTRC_OSC_NOCLKOUT
@ device WDT_OFF
'@ device protect_on & cpd_on

ibrsel

Kullandığını işlemciyi belirtirseniz ona uygun FUSE ayarlarını veren arkadaşlarımız olacaktır.

tolgaa

P 16F628A  KENDİ İÇİNDEKİ OSC Yİ KULLANMAK İÇİN     BU KOMUT DOGRUMU   @ device INTRC_OSC_NOCLKOUT

ibrsel

Aşağıdaki gibi deneyin..
Alıntı Yap
@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_OFF
@ DEVICE pic16F628A, PWRT_OFF
@ DEVICE pic16F628A, PROTECT_OFF
@ DEVICE pic16F628A, MCLR_OFF
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT

tolgaa


sahinler64

kardeş sen nasıl yaptın bilmiyorum ama bende bir sorun olmadı. he birde kendi içindeki osc yi kullanmak istiyorsun ama ilk başta "define osc 4" seçeneğin var. nildiğin kadarıyla bunun olmaması gerekiyor.
dediğim gibi ben derleme işlemini yaptım sorun çıkmadı. dosya olarak eklemek istedim fakat yapamadım kusura bakma...
SAYGILARIMLA...

ipek

bazen var olanları ' durdurup
böyle yazmak icap ediyor
@ device pic16F628A, intrc_osc_noclkout, wdt_on, pwrt_on, protect_off, mclr_off, lvp_off

ete

Sanıyorum Tolgaa arkadaş MPASM ile derleme yapıyor. Makinası muhtemelen 64 bit.
Şayet öyle ise forumda 64 bit makinalar için nasıl derleme yapılacağını ve programlarda sigorta ayarlarının nasıl olması gerektiğini açıklamış idim.
Nerde olduğunu hatırlamıyorum biraz da aradım ama yine bulamadım.
Benim sitede benzer açıklamalar vardı link aşağıdadır.
Burada daha detaylı yazılmıştı sanıyorum bulabilirsek epeyce yararlı olacaktır.

http://etepic.com/index.php?topic=300.0

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

erdogan2734

ASM
MCLR_OFF 
INTRC_OSC_NOCLKOUT 
ENDASM

Bence böyle denemelisin. Ben böyle çalışıyorum 64 bitte.
Bildiğim tek şey henüz hiç bir şey bilmediğim...