PIC18 ile GLCD EKRAN KÜTÜPHANESİ – (SAP1024B – T6963C) – MikroC

This post is also available in: English Azerbaycan Türkcesi Русский

SAP1024B - T6963C GLCD EKRAN KÜTÜPHANESİ - MİKROC
240×128 px Boyutunda GLCD

SAP1024B Ekran Kütüphanesi Kullanımı Genel

Pin tanımlamaları

Video Anlatım

  1. Sistem Fonskiyonları
  2. Görsel Fonksiyonlar
  3. Kütüphane

SAP1024B EKRAN KÜTÜPHANESİ KULLANIMI

Bu bölümde kütüphanede bulunan fonksiyonlar tek tek açıklanacaktır. Anlaşılamayan noktaları ve hata bildirimlirini ” Soru-Cevap” forumuna yapabilirsiniz

Önemli Notlar: 

  • Kütüphane sadece 240×120 ekranda denenmiştir ancak esnek tasarımı sayesinde diğer ekranlarda da
    çalışacaktır
  • Kütüphane SAP1024B entegresine göre yazılmıştır ancak bu entegre T6963C entegresinin kopyası olduğu
    için bu entegreye sahip ekranlar içinde uygundur
  • Kütüphane MikroC de kullanılmak üzere PIC18 MCU lar için tasarlanmıştır. Daha farklı programlar ve
    MCU larda çalışması kontrol edilmelidir
  • MCL(binary) dosyasını projenize nasıl ekleyeceğinizi bilmiyorsanız lütfen video tanıtımı izleyiniz

PIN TANIMLAMASININ YAPILMASI

Kütüphanedeki fonksiyonların GLCD ile iletişim kurup onu kullanabilmesi için bir takım portların ayarlanması ve bağlantının buna göre yapılması gerekir. Pin bağlantıları ile ilgili aşağıdaki resmi inceleyebilirsiniz

SAP1024B – T6963C GLCD EKRAN KÜTÜPHANESİ – PİN TANIMLAMALARI
  • “SAPTRIS” data portlarını temsil eder. GLCD bağlanırken tüm data uçları bir porta sırası ile bağlanmalıdır. Örnekte PORT-D ye bağlandığı için “trsid” olarak yazılmıştır
  • “SAPDATA_giris” ve “SAPDATA_cikis” aynı şekilde data pinleri PORT-D ye bağlandığı için “portd” ve “latd” olarak tanımlanmıştır
  • “SAP1024_RD”,“SAP1024_CE”,“SAP1024_CD”,“SAP1024_RST”,“SAP1024_FS”,“SAP1024_WR”, pinleri GLCD üzerinde adlarından da anlaşılacağı üzere kontrol pinleridir. RST  resetFS fons selecet uçlarıdır

1-SİSTEM FONKSİYONLARI

 

1A-)   SAP1024_INIT    Fonksiyonu

Amacı :

SAP1024_INIT fonksiyonu bağlı olan GLCD hakkında tüm parametreleri toplar ve gerekli değişkenleri hesaplar. Bu hesaplamalar ilerideki işlemlerde kullanılır. Mutlaka en başta bildirilmesi gerekir.

Kullanımı:

SAP1024_INIT (ekran genişliği,ekran yüksekliği,font)

Yukarıdaki şekilde çağırılır. “ekran genişliği” , “ekran yüksekliği” ve “font” adında üç adet argümanı vardır

– Ekran genişliği = Kullanılacak lcd nin genişliğini belirtir
 -Ekran Yüksekliği = Kullanılacak lcd nin yüksekliğini belirtir
 -Font = Kullanılacak font boyutunu belirtir. 2 seçenek vardır “6” dar fonttur “8” ise geniş fonttur

Örnek:

SAP1024_INIT (240,128,8) -> örnekte 240×128 bir GLCD yi geniş font ile çalıştırmasını istedik

 

1B-)   SAP1024_STATUS   Fonksiyonu

Amacı:

GLCD işlemcisinin meşgul olup olmadığını denetler. Meşgul durumdan çıkana kadar döngüde kalır ve sürekli denetler

Kullanımı:

Herhangi bir parametre alıp işlem yapmaz . Veri yazma ve komut fonksiyonlarının içerisinde işlemciye veri gönderme öncesinde denetim amaçlı kullanılır

 

1C-)   SAP1024_KOMUT_GONDER   Fonksiyonu

Amacı:

GLCD ye bir takım komutlar gönderilmesini sağlar.

Kullanımı:

SAP1024_KOMUT_GONDER( komut) , şeklinde çağırılarak kullanılır

-komut: daha önceden belirlenmiş GLCD içerisinde bulunan komutları çağıdır. Tam liste aşağıdadır. Bu komutlar gerçekte denk gelen değerler ile eşleştirilmiştir.

Komut Listesi :

NOT: Genel olarak son kullanıcının ihtiyacı olan komular “Display Mod Komutlarıdır”.Diğer bir çok komut sistem içerisinde kullanılması gerekir. Farklı yerlerde kullanılması sistemde hatalara sebep verebilir.

-Display Mod Komutları 

NOT: aşağıda bazı komutlar benzerdir. GLCD lerde TEXT ve GRAPHIC bölümü olarak 2 bölüm vardır. Bu sebeple her 2 bölüm için hem ayrı ayrı hemde her ikisinide kapsayan komutlar bulunabilir

  •  DISPLAY_OFF – ekran görüntü vermez ancak arkaplanda çalışmaya devam eder
  • TEXT_CURSOR_OFF-imleci kapatır
  • TEXT_CURSOR_ON_BLINK_OFF-imlec vardır ancak yanıp sönmez
  • TEXT_CURSOR_ON_BLINK_ON-imlec vardır ve yanıp söner
  • GRAPHIC_CURSOR_OFF-imleci kapatır
  • GRAPHIC_CURSOR_ON_BLINK_OFF-imlec vardır ancak yanıp sönmez
  • GRAPHIC_CURSOR_ON_BLINK_ON-imlec vardır ve yanıp söner
  • TEXT_GRAPHIC_CURSOR_OFF-imleci kapatır
  • TEXT_GRAPHIC_CURSOR_ON_BLINK_OFF-imlec vardır ancak yanıp sönmez
  • TEXT_GRAPHIC_CURSOR_ON_BLINK_ON-imlec vardır ve yanıp söner

-Cursor Pattern Komutları

  • BIR_CIZGILI_IMLEC-imleç kalınlığını tek çizgi yapar
  • IKI_CIZGILI_IMLEC-imleç kalınlığını iki çizgi yapar
  • UC_CIZGILI_IMLEC-imleç kalınlığını üç çizgi yapar
  • DORT_CIZGILI_IMLEC-imleç kalınlığını dört çizgi yapar
  • BES_CIZGILI_IMLEC-imleç kalınlığını beş çizgi yapar
  • ALTI_CIZGILI_IMLEC-imleç kalınlığını altı çizgi yapar
  • YEDI_CIZGILI_IMLEC-imleç kalınlığını yedi çizgi yapar
  • SEKIZ_CIZGILI_IMLEC-imleç kalınlığını sekiz çizgi yapar

-Mod Set Komutları

  • OR_MODE_CGROM
  • EXOR_MODE_CGROM
  • AND_MODE_CGROM
  • TEXT_ATTRIBUTE_MODE_CGROM
  • OR_MODE_CGRAM
  • EXOR_MODE_CGRAM
  • AND_MODE_CGRAM
  • TEXT_ATTRIBUTE_MODE_CGRAM

-Set Kontrol Komutları

  • CURSOR_POINTER_SET
  • SET_OFFSET_REGISTER
  • SET_ADDRESS_POINTER
  • SET_TEXT_HOME_ADDRESS
  • SET_TEXT_AREA
  • SET_GRAPHIC_HOME_ADDRESS
  • SET_GRAPHIC_AREA

-Data Yazma ve Okuma Komutları

  • DATA_AUTO_WRITE
  • DATA_AUTO_READ
  • RESET_AUTO_READ_WRITE
  • DATA_WRITE_INCREMENT_ADD
  • DATA_READ_INCREMENT_ADD
  • DATA_WRITE_DECREMENT_ADD
  • DATA_READ_DECREMENT_ADD
  • DATA_WRITE_KEEP_ADD
  • DATA_READ_KEEP_ADD

-Diğer Komutlar

  • SCREEN_PEAK
  • SCREEN_COPY

Örnek:

SAP1024_KOMUT_GONDER( DISPLAY_OFF) – örnekte ekran kapatma komutu verilmiştir. Buna göre ekran görüntü vermez ancak arka planda çalışmaya devam eder

 

1D-)   SAP1024_DATA_YAZ    Fonksiyonu

Amacı:

GLCD ye veri yazar

Kullanımı:

 SAP1024_DATA_YAZ(veri) – şeklinde kullanılır

-veri = 8 bitlik veriyi temsil eder.

Örnek:

SAP1024_DATA_YAZ(0b10000001) – örnekte veri binary olarak yazılmıştır. Ancak desimal veya hexadesimalde yazılabilir.

 

1E-)   SAP1024_DATA_OKU   Fonksiyonu

Amacı:

GLCD pointerin bulunduğu noktadaki verileri okur ve kendisi ile geri döndürür

Kullanımı :

SAP1024_DATA_OKU( ) – şeklinde kullanılır herhangi bir parametre almaz

 

1F-)   SAP1024_GRAFIK_ADRES_POINTER_KONUMLANDIRMA    Fonksiyonu

Amacı:

Pointerin konumlanacağı noktayı belirler.

Kullanımı:

NOT:Ekranın sol üst köşesi x=0 ve y=0 dır. Eksi parametre yoktur

SAP1024_GRAFIK_ADRES_POINTER_KONUMLANDIRMA( x , y) – şeklinde kullanılır

-x= ekrandaki “x” pozisyonunu belirler

-y= ekrandaki “y” pozisyonunu belirler

Örnek :

SAP1024_GRAFIK_ADRES_POINTER_KONUMLANDIRMA( 10 , 5) – ekranda x=10 ve y=5 in denk geldiği noktaya pointeri gönderir.

 

1G-)   SAP1024_LCD_GRAFIK_TEMIZLE  Fonksiyonu

Amacı :

Grafik belleğini siler yani ekranda yazı dışında bulunan tüm görüntü silinir

Kullanımı:

 SAP1024_LCD_GRAFIK_TEMIZLE( ) – şeklinde kullanılır, parametre almaz

 

1H-)   SAP1024_LCD_TEXT_TEMIZLE   Fonksiyonu

Amacı:

Yazı belleğini siler yani ekranda grafik dışında kalan tüm yazıları siler . Grafik olarak yüklenen yazılar silinmez.

Kullanımı:

SAP1024_LCD_TEXT_TEMIZLE( )  – şeklinde kullanılır , parametre almaz

 

1I-)   SAP1024_LCD_TEMIZLE   Fonksiyonu

Amacı:
Ekrandaki tüm yazı ve grafiği aynı anda siler
Kullanımı:
SAP1024_LCD_TEMIZLE( ) – şeklinde kullanılır, parametre almaz

 

1J-)   SAP1024_CURSOR_POZIZYON  Fonksiyonu

Amacı:

İmlecin poziyonunu belirler

Kullanımı:

 SAP1024_CURSOR_POZIZYON( x, y) , şeklinde kullanılır

-x= ekrandaki “x” konumunu belirler

-y=ekrandaki “y” konumunu belirler

Örnek:

SAP1024_CURSOR_POZIZYON( 0, 0) – imleci ekranın en sol üst köşesine gönderdik

 

 

2-GÖRSEL FONKSİYONLAR

 

2A-)   SAP1024_KARAKTER_YAZMA   Fonksiyonu

Amacı:

Bir adet karater yazar

Kullanımı:

SAP1024_KARAKTER_YAZMA(karakter) – şeklinde kullanılır

-karakter : string bir değerdir. Tek karakter alacağı için ‘ ‘ tek tırnak içinde bildirilir

Örnek:

SAP1024_KARAKTER_YAZMA(‘a’) – ekranda “a” karakteri yazdırıldı

SAP1024_KARAKTER_YAZMA  Fonksiyonu

 

2B-)   SAP1024_YAZI_YAZMA   Fonksiyonu

Amacı:

Ekranda istenilen yere cümle veya kelime yazmak için kullanılır.

GLCD nin standart ROM hafızasından okuma yaptığı için karakter boyutları değiştirilemez.

Kullanımı:

SAP1024_YAZI_YAZMA(sutun_X,satir_Y,yazi) – şeklinde kullanılır

-sutun_X: Yazı başlangıç x konumu

-sutun_Y:Yazı başlangıç y konumu

-yazi: Yazılması istene string . Pointer olduğundan yazının sınırı yoktur. Arkaplanda yazı boyutuna göre kendini otomatik ayarlar

Örnek:

SAP1024_YAZI_YAZMA(10,10,”Ercan Koclar”) – x ve y 10 da ( buradaki sayılar sutun ve satır dır.) “Ercan Koclar” yazdırılmıştır

SAP1024_YAZI_YAZMA   Fonksiyonu

 

 

2C-)   SAP1024_LCD_GELISMIS_YAZI   Fonksiyonu

Amacı:

Gelişmiş yazı yazma fonksiyonudur. Dışarıda kendi hazırladığınız Fontlarda kullanılabilir.

Kütüphanede hazır olarak “standart” adında font entegre edilmiş haldedir.

Yazı boyutu ayarlanabilir

Kullanımı:

SAP1024_LCD_GELISMIS_YAZI(pozisyon_x,pozisyon_y, yazi, font,olcek,bosluk, invert) – şeklinde kullanılır

-pozisyon_x:  yazının x konumundaki pozisyonunu belirler

-pozisyon_y:  yazının y konumundaki pozisyonunu belirler

-yazi : yazılacak yazıyı taşıyan pointerdir. Yazı istenilen uzunlukta olabilir

-font: Kullanılacak font adı seçilir. Varsayılan font için “standart” yazılmalıdır

-olcek:  Yazının büyüklüğünü ayarlar

-bosluk:  Değer arttıkça karakterleri birbirine yaklaştırır. Yüksek değerler yazıların iç içe girmesine sebep verir

-invert:  Renkleri terse cevirir. Terslemek için 1 değeri verilir. Varsayılan değer 0 dır

Örnek :

SAP1024_LCD_GELISMIS_YAZI(1,1, “ROKETLER”, standart,1,1,0) – x ve y 1 de “ROKETLER” yazısı 1 ölçek ile yazıldı

SAP1024_LCD_GELISMIS_YAZI(20,20, “ROKETLER”, standart,2,1,0) – x ve y 1 de “ROKETLER” yazısı 2 ölçek ile yazıldı

SAP1024_LCD_GELISMIS_YAZI   Fonksiyonu

 

2D-)   SAP1024_LCD_RESIM_BAS   Fonksiyonu

Amacı:

GLCD nin tamamını kaplayacak şekilde tam ekran  resimi ekranda göstermektir.

Kullanırken öncelikle resim boyutu ekran boyutuna çevrilmeli ardından 1 bit ( siyah beyaz) yapılmalı.

Siyah beyaz bu resim kod haline cevirilir. Bu kod dizisi fonksiyon ile kullanılır.

Dizi ayrı dosyada oluşturulup main e “#include” edilebilir

NOT: 1 birt resimleri cevirmek için “LCDAssistant” programını kullanabilirsiniz.

Kullanımı:

SAP1024_LCD_RESIM_BAS(veri,invert) – şeklinde kullanılır

-veri:  1 bit resmin cevirildiği dizi adı buraya yazılır. Tam anlamı ile anlamak için mutlaka videoyu izleyiniz
-invert: 1 olan bitleri 0   / 0 olan bitleri 1 yaparak resmi tersine çevirir

NOT: ben_kimim 1 bit resmin kod dizisi indirerek inceleyebilirsiniz.

Örnek:

SAP1024_LCD_RESIM_BAS(ben_kimim,1) – “ben_kimim” adlı dizi ekranda gösteriliyor

SAP1024_LCD_RESIM_BAS Fonksiyonu
1 bite cevirilmiş resim dosyası

2E-)   SAP1024_LCD_SIMGE_BAS   Fonksiyonu

Amacı:

Tam ekranın aksine özellikle menu tasarımları için kullanılacak fonksiyondur

Ufak simge resimlerini diziye cevirerek ekranın istediğiniz yerinde diğerlerinden bağımsız olarak görüntüleyebilirsiniz. Yani menu elemanı olarak düşünürsek bir buton resmini eklediğimizde sadece onu kontrol edebiliriz , ekrandaki diğer resimler değişikliğe uğramaz değişiklik ilgili resim bölgesinde olur

İnternette bulduğunuz simgelerinde boyutlarını ayarlayıp 1bite cevirerek kullanabilirsiniz.

Kullanımı:

 SAP1024_LCD_SIMGE_BAS(pozisyon_x,pozisyon_y,veri,genislik_pixel,yukseklik_pixel,invert) – şeklinde kullanılır

-pozisyon_x: simgenin görüntülenmeye başlayacağı x pozisyonu

-pozisyon_y: simgenin görüntülenmeye başlayacağı y pozisyonu

-veri : simge verisini  taşıyan dizi adı buraya yazılır

-genislik_pixel : simgenin piksel olarak genisliği yazılır

-yukseklik_pixel : simgenin piksek olarak yüksekliği yazılır

-invert: simgeyi terse cevirir. Bu özellik butonlarda basıldığını belirtmek üzere üzerine gelindiğinde kullanılmak için idealdir.
 NOT:  1 2 Aşağıdaki 1 bit simgelerin kod dizi dosyaları indirerek inceleyebilirsiniz

Örnek:

Örnekte kullanılan birbirinden bağımsız 2 adet 1 bitlik simge resimleri
SAP1024_LCD_SIMGE_BAS(0,0,simge1,40,56, 0) – simge invert edilmeden görüntülenmiştir

SAP1024_LCD_SIMGE_BAS(50,0,simge2,49,59, 1)- simge invert edilmiştir

 

SAP1024_LCD_SIMGE_BAS   Fonksiyonu

 

2F-)   SAP1024_PIXEL   Fonksiyonu

Amacı:

Konumu belirtilen noktada bir adet pixeli renklendirir yada siler

Temel çizim fonksiyonu olması yanında grafik diyagram çizimi , dokunmatik tahta gibi uygulamar için kullanılabilir

Kullanımı:

SAP1024_PIXEL(pozisyon_x,pozisyon_y,renk)  – şeklinde kullanılır

-pozisyon_x: x konumunda pikselin pozisyonunu verir

-pozisyon_y: y konumunda pikselin pozisyonunu verir

-renk: renk eğer 1 ise piksel beyaz olur 0 olursa piksel silinir

Örnek:

SAP1024_PIXEL(0,0,1)

SAP1024_PIXEL(10,10,1)

SAP1024_PIXEL(1,2,1)   farklı 3 noktada pikseller oluşturulmuştur

SAP1024_PIXEL   Fonksiyonu

 

 

2G-)   SAP1024_CIZGI   Fonksiyonu

Amacı:

İstenilen uzunlukta ve kalınlıkta çizgi çizilmesini sağlar.

Başlangıç(x0,y0) ve bitiş(x1,y1) pozisyonları arasında bir doğru çizer

Gercek zamanlı saat görüntüsü için oldukça uygun bir fonksiyon

Kullanımı:

SAP1024_CIZGI(pozisyon_x0,pozisyon_y0,pozisyon_x1,pozisyon_y1,kalinlik,renk) – şeklinde kullanılır

-pozisyon_x0: çziginin başlangıç noktasının x kordinatı

-pozisyon_y0: çizginin başlangıç noktasının y kordinatı

-pozisyon_x1: çizginin bitiş noktasının x kordinatı

-pozisyon_y1: çizginin bitiş noktasının y kordinatı

-kalinlik: değer arttıkça çizgi kalınlığı artar

-renk: 1 olursa görünürdür 0 yapılırsa invert ederek terse cevirir

Örnek:

SAP1024_CIZGI(0,0,35,25,1,1)

SAP1024_CIZGI(25,25,30,32,2,1)

SAP1024_CIZGI   Fonksiyonu

 

 

2H-)   SAP1024_DORTGEN   Fonksiyonu

Amacı:

Dörgen yani  kare veya dikdörtgen çizimi yapar

Kalınklık verilerbilir

Belirtilen dört nokta arasında çizim yapar

Kullanımı:

SAP1024_DORTGEN(pozisyon_x0,pozisyon_y0,pozisyon_x1,pozisyon_y1, kalinlik,renk) – şeklinde kullanılır

-pozisyon_x0: 1. x noktası verisini alır

-pozisyon_y0: 1. y noktası verisini alır

-pozisyon_x1: 2. x noktası verisini alır

-pozisyon_y1: 2. y noktası verisini alır

-kalinlik: çizilen dörtgenin çizgi kalınlığını arttırır

-renk: 1 ise görünür olur 0 yapılırsa invert eder

Örnek:

SAP1024_DORTGEN(0,0,20,40, 5,1) – çizgi kalınlığı 5 olarak yapılmış dörtgen

SAP1024_DORTGEN(50,50,45,40, 1,1)

SAP1024B - T6963C GLCD EKRAN KÜTÜPHANESİ - MİKROC
SAP1024_DORTGEN   Fonksiyonu

 

2İ-)   SAP1024_DORTGEN_RADUS   Fonksiyonu

Amacı:

Dörtgen çizim fonksiyonun aynısıdır tek farkı köşelerine radius yani yumuşatma verir

Kullanımı:

 SAP1024_DORTGEN_RADUS( pozisyon_x0,pozisyon_y0,pozisyon_x1,pozisyon_y1, r, dolu,renk) – şeklindedir

diğer değişkenler dörtgen çizim fonksiyonu ile aynıdır

-r: istenen radius ölçüsüdür

Örnek:

SAP1024_DORTGEN_RADUS( 10,10,30,30, 5, 1, 1)

SAP1024_DORTGEN_RADUS( 50,50,80,80, 10, 0, 1)

SAP1024B - T6963C GLCD EKRAN KÜTÜPHANESİ - MİKROC
SAP1024_DORTGEN_RADUS   Fonksiyonu

 

2J-)   SAP1024_CEMBER   Fonksiyonu

Amacı:

Belirtilen merkez noktasından(x,y) istenilen “r” ölçüsünde çember çizer

Bölge , çemberin dört açısını temsil eder(90 derece) sıfır girilirse tamamı çizilir.

Kullanımı:

 SAP1024_CEMBER(pozisyon_x,pozisyon_y,r,dolu,bolge,renk) – şeklinde kullanılır

-pozisyon_x: merkezin x kordinatı

-pozisyon_y: merkezin y kordinatı

-r: daire yarı çapı

-dolu: 1 yapılırsa daire için tam dolu çizilir 0 yapılırsa içi boş daire çizilir

-bolge: daire 4 bölgeden oluşur. 0 verilirse tam daire çizilir rakam verilirse rakama denk gelen açı kadar daire çizilir.( örnek: yarım daire gibi)
-renk: 1 ise görünürdür 0 verilirse ise invert eder

SAP1024B - T6963C GLCD EKRAN KÜTÜPHANESİ - MİKROC
çemberin bölümleri

Örnek:

SAP1024_CEMBER(50,50,30,1,0,1)

SAP1024_CEMBER(100,30,10,1,0,1)

SAP1024_CEMBER(10,10,5,0,1,1) – 1. bölge seçildi

SAP1024_CEMBER   Fonksiyonu

 

2K-)   SAP1024_UCGEN   Fonksiyonu

Amacı:

Üç noktanında (x,y) kordinatları girilerek üçgen çizer

Kullanımı:

Üçgenin konumlandırması aşağıdaki resimdeki gibidir

SAP1024B - T6963C GLCD EKRAN KÜTÜPHANESİ - MİKROC
üçgen kordinatları

SAP1024_UCGEN(ax,bx,cx,ay,by,cy, renk) – şeklinde kullanılır

-ax: A noktasının x kordinatı

-bx: B noktasının x kordinatı

-cx: C noktasının x kordinatı

-ay: A noktasının y kordinatı

-by: B noktasınn y kordinatı

-cy: C noktasının y kordinatı

-renk:  1 ise görünür 0 ise invert eder

Örnek:

SAP1024_UCGEN(0,40,20,20,25,30, 1)

SAP1024_UCGEN(100,150,125,50,50,25, 1)

SAP1024_UCGEN   Fonksiyonu


“GLCD KÜTÜPHANESİ KULLANIM” VİDEO DERSİ


Gerekli Dosyalar

 


 

ERCAN KOÇLAR Hakkında

Çalışmalarım çocukken başladı kolonyalı kağıtları yakmak, ilaçları birbirine katmak gibi değişik deneylerim vardı. Kimya kitabında elektroliz ile suyun hidrojen ve oksijene ayrıldığı ve hidrojenin yandığını yazıyordu, o zamanlarda aklım almıyordu sudan nasıl yanan....Devamını okumak için tıklayınız ;)

Comments are closed.