12f675 microcode studio derleme hatası

Başlatan enginkanat, 13 Ekim 2024, 22:54:52

enginkanat

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2024 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 23.09.2024                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'__config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF
'@  __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_ON
@ __CONFIG _CP_ON & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
DEFINE OSC 20         ' 20 MHz osilatör tanımlaması
DEFINE HSER_BAUD 9600 ' Seri haberleşme hızını 9600 baud olarak ayarla
DEFINE HSER_TXSTA 24  ' Seri haberleşme ayarı: Asenkron, 8 bit, yüksek hız
DEFINE HSER_SPBRG 129 ' Baud rate register değeri (20 MHz için 9600 baud)

' Değişken tanımlamaları
Frekans VAR WORD      ' Ölçülen frekans değeri
ButtonPin VAR GPIO.0  ' Buton pin tanımlaması (GPIO0)
TimerValue VAR WORD   ' Timer0 değeri
COUNT_PIN VAR GPIO.1  ' Frekans ölçmek için kullanılan pin (GPIO1)

TRISIO = %00000001  ' GPIO0 input (buton), diğer pinler output
OPTION_REG = %00000111 ' Timer0 prescaler ayarları (1:256)

Main:
    IF ButtonPin = 0 THEN   ' Butona basıldı mı?
        pause 50
        while ButtonPin = 0
        wend
        
        GOSUB MeasureFrequency ' Frekansı ölç
        HSerOut ["Frequency: ", DEC Frekans, " Hz", 13, 10] ' Frekansı seri porttan gönder
        PAUSE 500            ' Yarım saniye bekle
    ENDIF
    GOTO Main                ' Ana döngüye geri dön

' Buton basımını kontrol eden fonksiyon
'ButtonPressed:
'    IF ButtonPin = 1 THEN    ' Butona basıldı mı?
'        PAUSE 50             ' Kısa bir bekleme süresi (debouncing için)
'        IF ButtonPin = 1 THEN ' Tekrar kontrol et
'            RETURN TRUE       ' Buton gerçekten basılı
'        ENDIF
'    ENDIF
'    RETURN FALSE              ' Buton basılı değil
'    RETURN

' Frekans ölçüm alt programı
MeasureFrequency:
    TimerValue = 0          ' Timer0 değerini sıfırla
    COUNT COUNT_PIN, 1000, TimerValue ' 1 saniye boyunca GPIO1 pinindeki sinyalleri say (1000 ms)
    Frekans = TimerValue     ' Ölçülen değeri frekansa ata
    RETURN

microcode studio 4.0 ile 64 bit windows 7 kullanarak yukarıdaki programı derlemeye çalışıyorum. eklediğim resimdeki hataları alıyorum. aynı programı 16F628A ile derlediğimde bir sorun çıkmıyor. Nerede hata yapıyor olabilirim?


aRci

#1
Pbp klasöründeki pic e ait inc klasorunde config satırı kapalimi

ete

Hataları i 16F628A da bulunan ancak 12F675 de olmayan USART config satırları yaratmaktadır.
12F675 derlerken bu satırları iptal etmeniz gerekir.

Ete

onurinci

bende bir zamanlar saç baş yolmuştum, sonra bir yöntem keşfettim , MPLAB'ın içinde P12F675.inc dosyasını arattırıp, içerine bakıyorum, hangi Register'ler var neler yok , hangi bank'talar, OSC ayarları gibi , adam herşeyi ayrıntılı vermiş....

Powered by EzPortal