16f628a intosc

Başlatan O.KIRATLI, 20 Kasım 2011, 17:02:22

O.KIRATLI

 >:(Akradaşlar merhabalar,
Daha önce bir pic'i dahili osilatörle hiç çalıştırmamıştım, denemek için alttaki programı yazdım ama hiç bir şekilde dahili osilatörle çalıştırmayı başaramadım. Farklı konfigürasyonlar denedim ama bir şey değişmedi. Bukonuda bir fikri olan varmı acaba?

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 19.10.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device 16F628A
Device 16F628A, INTRC_OSC_NOCLOCKOUT
Device 16F628A, wdt_off
Device 16F628A, mclr_on
Device 16F628A, boden_off
Device 16F628A, lvp_off
Device 16F628A, data_cp_off
Device 16F628A, cp_off
TRISA=%00000010
TRISB=%00000000
Dim buton As PORTA.1
Dim i As Word
PORTB_PULLUPS 1
PORTB.4=0
PORTA.0=1

basla:
DelayMS 100

anaprog:
If buton=1 Then 
GoSub tussay
Else
buton=0
EndIf


GoTo anaprog


tussay:
For i=1 To 100
DelayMS 10
If buton=0 Then GoTo anaprog
Next
Toggle PORTB.4
Toggle PORTA.0
Return



Maxim

bu satırlar yanlış

Device 16F628A, INTRC_OSC_NOCLOCKOUT
Device 16F628A, wdt_off
Device 16F628A, mclr_on
Device 16F628A, boden_off
Device 16F628A, lvp_off
Device 16F628A, data_cp_off
Device 16F628A, cp_off

config tanımlamaları böyle olmaz
birçok örnek var onlara bakınız

-Hasan-

DEVICE PIC16F628, INTRC_OSC_NOCLKOUT

Yanılmıyorsam böyle olması lazım.

O.KIRATLI

Tekrar merhaba,

Win 7, proteus 7.7 Sp2, Brenner 8 ve Usburn 1.1 kullanıyorum. Bunlarla ilgili bir şey olabilirmi acaba? Alttaki satırların hiçbiri işe yaramadı bazılarında proton derlerken hata veriyor bazılarıda derleniyor ama çalışmıyor. Bu satırları internetteki benzer programlardan aldım.

@ device pic16f628a, intrc_osc_noclkout
@ device pic16f628a, intrc_osc_clkout
@ device pic16f628, intrc_osc_noclkout
@ device pic16f628, intrc_osc_clkout
device pic16f628a, intrc_osc_noclkout
device pic16f628a, intrc_osc_clkout
device pic16f628, intrc_osc_noclkout
device pic16f628, intrc_osc_clkout
device 16f628a, intrc_osc_noclkout
device 16f628a, intrc_osc_clkout
device 16f628, intrc_osc_noclkout
device 16f628, intrc_osc_clkout

O.KIRATLI

"Define osc=4" gibi bir tanımlamaya ihtiyaç varmı? Dahili osilatörde gerek yok diye biliyorum yanlışmı acaba?

Maxim

#5
bunu dene

Device 16F628A
Xtal 4
Config FOSC_INTOSCIO, WDTE_OFF, PWRTE_ON, MCLRE_OFF, BOREN_OFF, LVP_OFF, CPD_OFF, CP_OFF

pcb

dahili osilatörde XTAL tanımlamıyorum

O.KIRATLI

Şimdilik umutsuz vaka!

ferit06


Device=16F628A
Config  INTRC_OSC_NOCLKOUT, WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF ,CP_OFF


BU kesinlikle çalışan bir config satırı... Eğer çalıştıramıyorsanız sizin başka sorununuz var.


Tamamı...
'****************************************************************
'*  Name    : sayısal.BAS                                      *
'*  Author  :ferit06                                            *
'*  Notice  : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 12.03.2009                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
   Device=16F628A
' XTAL=4
Config  INTRC_OSC_NOCLKOUT, WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF ,CP_OFF
 TRISA=$FF
 TRISB=%00001000
 T1CON=%00000101   'TMR1 SAYACI AYARLANIYOR 
' INTCON.7=0

    CMCON=7    		   
    All_Digital = TRUE 		   	' TÜM PORTLAR DIGITAL

    Declare LCD_RSPin PORTB.0
	Declare LCD_ENPin PORTB.1
   	Declare LCD_RWPin PORTB.2 
 	Declare LCD_DTPin PORTB.4 
	Declare LCD_Interface 4       ' Used for 4-line interface. 
	Declare LCD_Lines 2    
	
	Dim SEC1 As Byte
	Dim SEC2 As Byte
	Dim SEC3 As Byte
    Dim SEC4 As Byte
    Dim SEC5 As Byte
    Dim SEC6 As Byte
    Dim RND As Word
    Dim SEL As Byte
    Dim SAY As Byte
    Dim LMT As Byte
    Dim ART As Byte
    Dim RB As Byte
    Dim M As Byte
   
    

DelayMS 200

BASLA:                   
 
' 	Print $FE,1, "BIR TUS", Dec M," ",Dec RB," ", Dec SEC1 
 	Print $FE,1, "BIR TUSA BAS " ,Dec SEC1
If ART=1 Then
	Print $FE,$C0,Dec SEC2," ", Dec SEC3," ",Dec SEC4," ",Dec SEC5," +", Dec SEC6
Else                                                                                  
	Print $FE,$C0,Dec SEC2," ", Dec SEC3," ",Dec SEC4," ",Dec SEC5," ", Dec SEC6
EndIf
   	DelayMS 200

AA:
If PORTA.1=1 Then AA


BB:
If PORTB.3=0 Then   ' SUPER LOTO İÇİN SEÇİM YAPILIYOR
LMT=54
ART=0
GoTo S1
EndIf

If PORTA.2=0 Then  ' SAYISAL LOTO İÇİN SEÇİM YAPILIYOR
LMT=49
ART=0
GoTo S1
EndIf

If PORTA.0=0 Then ' ŞANS TOPU İÇİN SEÇİM YAPILIYOR

LMT=34
ART=1
GoTo S1
EndIf
DelayUS 20

GoTo BB

S1:  
SEC1=0
SEC2=0
SEC3=0
SEC4=0
SEC5=0
SEC6=0

	Print $FE,1, "SECILIYOR "
    Print $FE,$C0," BEKLEYINIZ" 
   	DelayMS 200

    GoSub RAND
    GoSub RASTGELE
    If RND=0 Then GoTo S1: 
 SEC1=RND
GoSub Goster 

S2:

 If   PORTA.1=1 Then S2
    GoSub RAND
    GoSub RASTGELE
    If  RND=SEC1 Then GoTo S2 
    If RND=0 Then GoTo S2:
'endif
    SEC2=RND
GoSub Goster  
S3:
 If   PORTA.1=1 Then S3
    GoSub RAND
    GoSub RASTGELE
    If  RND=SEC1 Or RND=SEC2  Then GoTo S3
    If RND=0 Then GoTo S3:
    SEC3=RND
GoSub Goster  
S4: 
 If   PORTA.1=1 Then S4
    GoSub RAND
    GoSub RASTGELE
    If  RND=SEC1 Or RND=SEC2 Or RND=SEC3 Then GoTo S4   
    If RND=0 Then GoTo S4:
    SEC4=RND
GoSub Goster  
S5: 
 If   PORTA.1=1 Then S5
    GoSub RAND
    GoSub RASTGELE
    If  RND=SEC1 Or RND=SEC2 Or RND=SEC3 Or RND=SEC4 Then GoTo S5 
    If RND=0 Then GoTo S4:
    SEC5=RND
GoSub Goster 
S6: 

 If   PORTA.1=1 Then S6
    GoSub RAND
    GoSub RASTGELE
    If ART=1 Then GoSub TEST2
    If RND=SEC1 Or RND=SEC2 Or RND=SEC3 Or RND=SEC4 Or RND=SEC5 Then GoTo S6
'    If RND=0 Then GoTo S6:
    SEC6=RND
GoSub Goster  

For  SAY=0 To 5 
If SEC1>SEC2 Then
SEL=SEC1
SEC1=SEC2
SEC2=SEL
EndIf

If SEC2>SEC3 Then
SEL=SEC2
SEC2=SEC3
SEC3=SEL
EndIf

If SEC3>SEC4 Then
SEL=SEC3
SEC3=SEC4
SEC4=SEL
EndIf

If SEC4>SEC5 Then
SEL=SEC4
SEC4=SEC5
SEC5=SEL
EndIf
If ART=1 Then dr
If SEC5>SEC6 Then
SEL=SEC5
SEC5=SEC6
SEC6=SEL
EndIf
dr:
Next


GoTo BASLA
 
tt:
GoSub RAND 
TEST2:
If RND=0 Then SEC6=14:GoTo mm
If  RND>14 Then RND=RND-14 :GoTo TEST2
SEC6=RND
mm:
Return
 Goster:
'DelayMS 200
     Print $FE,1, Dec SEC1," ",Dec SEC2," ", Dec SEC3," "
If ART=1 Then
     Print $FE,$C0,Dec SEC4," ",Dec SEC5," +", Dec SEC6,
Else
     Print $FE,$C0,Dec SEC4," ",Dec SEC5," ", Dec SEC6," "
EndIf
     DelayMS 500
Return 
RASTGELE:  

'Gosub RAND
 '   RND= RANDOM_VARIABLE
    TEST:
    If RND>LMT Then
    RND=RND-LMT                  
    GoTo   TEST
    EndIf 

Return    


RAND: 

T1CON.0=0

    RB=TMR1L
    M=TMR1H
    Random  RND
    RND.LowByte=RND.LowByte + RB
    RND.HighByte=RND.HighByte + M
T1CON.0=1
Return


End   

Mucit23

Alıntı yapılan: ozi486 - 20 Kasım 2011, 20:09:16
"Define osc=4" gibi bir tanımlamaya ihtiyaç varmı? Dahili osilatörde gerek yok diye biliyorum yanlışmı acaba?

Tanımlamanın faydası olur diye düşünüyorum. Çünkü Delay gecikmeleri, Sleep komutu gibi pici duraksatan komutlar yazdığınız gecikme süresini bu komutta yazılan OSC değerine göre hesaplıyordu.