lpc1768 ile dijital-analog saat uygulaması

Başlatan yamak, 16 Eylül 2011, 16:16:30

yamak

Kontrol pinleri buradan değiştirebiirsiniz:

#define GLCD_CS1(a) (LPC_GPIO1->FIOSET=a<<19)   // Chip Selection 1
#define GLCD_CS1C(a) (LPC_GPIO1->FIOCLR=a<<19)

#define GLCD_CS2(a) (LPC_GPIO1->FIOSET=a<<20)   // Chip Selection 2
#define GLCD_CS2C(a) (LPC_GPIO1->FIOCLR=a<<20)

#define GLCD_DI(a)  (LPC_GPIO1->FIOSET=a<<21)   // Data or Instruction input
#define GLCD_DIC(a)  (LPC_GPIO1->FIOCLR=a<<21)

#define GLCD_RW(a)  (LPC_GPIO1->FIOSET=a<<24)  // Read/Write
#define GLCD_RWC(a)  (LPC_GPIO1->FIOCLR=a<<24)

#define GLCD_E(a)   (LPC_GPIO1->FIOSET=a<<23)   // Enable
#define GLCD_EC(a)   (LPC_GPIO1->FIOCLR=a<<23)

#define GLCD_RST(a) (LPC_GPIO1->FIOSET=a<<25)
#define GLCD_RSTC(a) (LPC_GPIO1->FIOCLR=a<<25)   // Reset*/


Data pinleri de GPIO0<15,16,17,18,19,20,21,22>

zamzam23

#31
hocam ben biraz acemiyim. sizin bu projenizde yusuf_rtc.h da problem çıkıyor include edemedim projeye. projenin tamamını include edilmiş haliyle paylasmanız mumkun mu? *.uvproj dosyasıyla yani.

main.c(2): error:  #5: cannot open source input file "yusuf_rtc.h": No such file or directory

şeklinde bir hata alıyorum sürekli.

yamak

Hocam rtc.h ve rtc.c dosyalarının her ikisini de proje klasörünüze kopyalayın. Sonra Keilda sol taraftan Source Group 1 e sağ tıklayın ve Add Files to Group 'Source Group 1' e tıklayıp yusuf_rtc.c dosyasını seçip proje dahil edin.Sonra projeyi derleyin.Bi sorun çıkmaması lazım.

zamzam23

olmuyor yapamadım.
yusuf_rtc.c ve rtc.c dosyaları ayrı ayrı dosyalar mıdır ve ikisininde olması gerekli midir? yoksa yazım hatası mı var 

sseedat

Alıntı yapılan: zamzam23 - 19 Aralık 2012, 04:03:52
hocam ben biraz acemiyim. sizin bu projenizde yusuf_rtc.h da problem çıkıyor include edemedim projeye. projenin tamamını include edilmiş haliyle paylasmanız mumkun mu? *.uvproj dosyasıyla yani.

main.c(2): error:  #5: cannot open source input file "yusuf_rtc.h": No such file or directory

şeklinde bir hata alıyorum sürekli.
yusuf_rtc.h dosya yolunu keil de belirterek deneyebilirsin
Görünmez bir mezarlıktır Zaman...

yamak

Hocam şu iki dosya:
yusuf_rtc.c:
#include <lpc17xx.h>
#include "yusuf_rtc.h"

void rtc_init(void)
{
    LPC_SC->PCONP |= (1 << 9);
    if(!(LPC_RTC->RTC_AUX)&(0x01<<4))
    {
       LPC_RTC->RTC_AUX|=0x01<<4;
    }
    LPC_RTC->AMR = 0;
  	LPC_RTC->CIIR = 1;
  	LPC_RTC->CCR = 0;
  	return;
}

void rtc_start(void)
{
    
    LPC_RTC->CCR|=0x01;
    LPC_RTC->ILR |= 0x03;

}

void rtc_restart(void)
{

    LPC_RTC->CCR|=0x02;
}

void rtc_stop(void)
{
    LPC_RTC->CCR=0;	

}
void RTCSetTime(RTC_TIME Time)
{
    LPC_RTC->SEC = Time.RTC_Sec;
    LPC_RTC->MIN = Time.RTC_Min;
  	LPC_RTC->HOUR = Time.RTC_Hour;
  	LPC_RTC->DOM = Time.RTC_Mday;
  	LPC_RTC->DOW = Time.RTC_Wday;
  	LPC_RTC->DOY = Time.RTC_Yday;
  	LPC_RTC->MONTH = Time.RTC_Mon;
  	LPC_RTC->YEAR = Time.RTC_Year;
}

RTC_TIME RTCGetTime(void)
{
    RTC_TIME LocalTime;
    
    LocalTime.RTC_Sec = LPC_RTC->SEC;
  	LocalTime.RTC_Min = LPC_RTC->MIN;
  	LocalTime.RTC_Hour = LPC_RTC->HOUR;
  	LocalTime.RTC_Mday = LPC_RTC->DOM;
  	LocalTime.RTC_Wday = LPC_RTC->DOW;
  	LocalTime.RTC_Yday = LPC_RTC->DOY;
  	LocalTime.RTC_Mon = LPC_RTC->MONTH;
  	LocalTime.RTC_Year = LPC_RTC->YEAR;
  	return ( LocalTime );    
}
void RTCSetAlarm(RTC_TIME Time)
{
    LPC_RTC->ALSEC = Time.RTC_Sec;
    LPC_RTC->ALMIN = Time.RTC_Min;
  	LPC_RTC->ALHOUR = Time.RTC_Hour;
  	LPC_RTC->ALDOM = Time.RTC_Mday;
  	LPC_RTC->ALDOW = Time.RTC_Wday;
  	LPC_RTC->ALDOY = Time.RTC_Yday;
  	LPC_RTC->ALMON = Time.RTC_Mon;
  	LPC_RTC->ALYEAR = Time.RTC_Year;
}
RTC_TIME RTCGetAlarmTime(void)
{
    RTC_TIME AlarmTime;
    
    AlarmTime.RTC_Sec = LPC_RTC->ALSEC;
  	AlarmTime.RTC_Min = LPC_RTC->ALMIN;
  	AlarmTime.RTC_Hour = LPC_RTC->ALHOUR;
  	AlarmTime.RTC_Mday = LPC_RTC->ALDOM;
  	AlarmTime.RTC_Wday = LPC_RTC->ALDOW;
  	AlarmTime.RTC_Yday = LPC_RTC->ALDOY;
  	AlarmTime.RTC_Mon = LPC_RTC->ALMON;
  	AlarmTime.RTC_Year = LPC_RTC->ALYEAR;
  	return ( AlarmTime );    
}
void RTCAlarmMask(uint32_t AlarmMask)
{
    LPC_RTC->AMR=AlarmMask;
}


yusuf_rtc.h:
typedef struct{
    int RTC_Sec;
    int RTC_Min;
    int RTC_Hour;
    int RTC_Mday;
    int RTC_Year;
    int RTC_Mon;
    int RTC_Wday;
    int RTC_Yday;
}RTC_TIME;

#define AMRSEC 	0x01
#define AMRMIN 	0x02
#define AMRHOUR 0x04
#define AMRDOM  0x08
#define AMRDOW  0x10
#define AMRDOY  0x20
#define AMRMON  0x40
#define AMRYEAR 0x80

 
extern void rtc_init(void);
extern void rtc_start(void);
extern void rtc_restart(void);
extern void rtc_stop(void);
extern void RTCSetTime(RTC_TIME time);
extern RTC_TIME RTCGetTime(void);
extern RTC_TIME RTCGetAlarmTime(void);


bu iki dosyanın proje klasöründe olması gerekiyo.