Selasa, 24 Juli 2018

spm register
Register Kontrol Memori Program Penyimpanan berisi bit kontrol yang diperlukan untuk mengontrol Boot
Operasi loader.
• Bit 7 - SPMIE: SPM Interrupt Enable
Ketika bit SPMIE ditulis ke satu, dan I-bit di Daftar Status diatur (satu), SPM
interupsi siap akan diaktifkan. Interupsi siap SPM akan dieksekusi selama SPMEN
bit di Daftar SPMCR dihapus.
• Bit 6 - RWWSB: Bagian Baca-Sementara-Tulis Sibuk
Ketika operasi Pemrograman Mandiri (halaman menghapus atau penulisan halaman) ke bagian RWW dimulai,
RWWSB akan diatur (satu) oleh perangkat keras. Saat bit RWWSB diatur, bagian RWW tidak bisa
diakses. Bit RWWSB akan dihapus jika bit RWWSRE ditulis ke satu setelah a
Operasi Pemrograman Mandiri selesai. Atau, bit RWWSB akan menjadi otomatis
dihapus jika operasi pemuatan halaman dimulai.
• Bit 5 - Res: Bit yang Dijamin
Bit ini adalah bit cadangan di ATmega8 dan selalu dibaca nol.
• Bit 4 - RWWSRE: Baca-Sementara-Tulis Bagian Baca Aktif
Saat memprogram (menghapus halaman atau menulis halaman) ke bagian RWW, bagian RWW adalah
diblokir untuk membaca (RWWSB akan diatur oleh perangkat keras). Untuk mengaktifkan kembali bagian RWW,,
perangkat lunak pengguna harus menunggu sampai pemrograman selesai (SPMEN akan dihapus). Lalu jika
bit RWWSRE ditulis ke satu pada saat yang sama dengan SPMEN, instruksi SPM berikutnya dalam
empat siklus clock mengaktifkan kembali bagian RWW. Bagian RWW tidak dapat diaktifkan kembali saat
Flash sibuk dengan penghapusan halaman atau penulisan halaman (SPMEN diatur). Jika bit RWWSRE ditulis
sementara Flash sedang dimuat, operasi beban Flash akan dibatalkan dan data akan dimuat
hilang (buffer halaman akan dihapus ketika bagian Read-While-Write diaktifkan kembali).
• Bit 3 - BLBSET: Set Kunci Booting
Jika bit ini ditulis ke satu pada saat yang sama dengan SPMEN, instruksi SPM berikutnya dalam empat jam
siklus menetapkan Bits Kunci Boot, sesuai dengan data dalam R0. Data di R1 dan alamat di Zpointer
diabaikan. Bit BLBSET secara otomatis akan dihapus setelah selesainya bit kunci
set, atau jika tidak ada instruksi SPM dijalankan dalam empat siklus jam.
Instruksi LPM dalam tiga siklus setelah BLBSET dan SPMEN ditetapkan dalam Daftar SPMCR,
akan membaca baik Kunci Bits atau Fuse Bits (tergantung pada Z0 di Z-pointer) ke dalam
register tujuan. Lihat “Membaca Sekring dan Kunci Bit dari Perangkat Lunak” di halaman 210 untuk
rincian.
Tabel 80. Boot Reset Fuse (1)
Alamat Reset BOOTRST
1 Atur Ulang Vector = Reset Aplikasi (alamat 0x0000)
0 Reset Vector = Boot Loader Reset (lihat Tabel 82 di halaman 213)
Bit 7 6 5 4 3 2 1 0
SPMIE RWWSB - RWWSRE BLBSET PGWRT PGERS SPMEN SPMCR
Baca / Tulis R / W R ​​R / W R ​​/ W R ​​/ W R ​​/ W R ​​/ W
Nilai Awal 0 0 0 0 0 0 0 0
207
2486AA – AVR – 02/2013
ATmega8 (L)
• Bit 2 - PGWRT: Halaman Tulis
Jika bit ini ditulis ke satu pada saat yang sama dengan SPMEN, instruksi SPM berikutnya dalam empat jam
siklus mengeksekusi penulisan halaman, dengan data yang disimpan dalam buffer sementara. Alamat halaman adalah
diambil dari bagian tinggi penunjuk-Z. Data dalam R1 dan R0 diabaikan. Bit PGWRT
akan otomatis menghapus setelah selesainya penulisan halaman, atau jika tidak ada instruksi SPM yang dijalankan dalam empat
siklus jam. CPU dihentikan selama operasi penulisan seluruh halaman jika bagian NRWW berada
ditangani.
• Bit 1 - PGERS: Page Erase
Jika bit ini ditulis ke satu pada saat yang sama dengan SPMEN, instruksi SPM berikutnya dalam empat jam
siklus mengeksekusi penghapusan halaman. Alamat halaman diambil dari bagian tinggi penunjuk-Z. Itu
data dalam R1 dan R0 diabaikan. Bit PGERS akan dihapus otomatis setelah selesainya penghapusan halaman,
atau jika tidak ada instruksi SPM yang dilaksanakan dalam empat siklus jam. CPU dihentikan selama keseluruhan
operasi penulisan halaman jika bagian NRWW ditangani.
• Bit 0 - SPMEN: Memori Program Store Aktif
Bit ini memungkinkan instruksi SPM untuk empat siklus jam berikutnya. Jika ditulis ke satu bersama
baik RWWSRE, BLBSET, PGWRT ’atau PGERS, instruksi SPM berikut akan memiliki yang khusus
artinya, lihat uraian di atas. Jika hanya SPMEN yang ditulis, instruksi SPM berikut akan
simpan nilai dalam R1: R0 di buffer halaman sementara yang dialamatkan oleh pointer-Z. LSB dari
Penunjuk-Z diabaikan. Bit SPMEN akan otomatis dihapus setelah menyelesaikan instruksi SPM,
atau jika tidak ada instruksi SPM yang dilaksanakan dalam empat siklus jam. Selama penghapusan halaman dan penulisan halaman,
bit SPMEN tetap tinggi hingga operasi selesai.
Menulis kombinasi lain selain "10001", "01001", "00101", "00011" atau "00001" di bagian bawah
lima bit tidak akan berpengaruh.

Jumat, 25 Mei 2018

Friend class

Class juga punya temen sama kaya budi friend class adalah class yang digunakan untuk mengakses memeber kelas lain dengan menggunakan friend class
Friend class didefinisikan oleh class pemberi teman
Dapat mengambil data privat nya tapi tidak sebaliknya pemberi ijin adalah yang mempunyai member clasnya
Kita bisa ambil data private dari suatu class dengan membuat fungsi di class friend yang menggunakan parameyer dg objek class tsb yang mau di ambil member privatenya

Britnes dmd

Britnes bisa sibuat dengan pulsa sinyal.di pin oe pd dmd dengan cara kerja pada saat ditampilkan data maka kasih pulsa jika mau di di input data kasih 0.

Minggu, 20 Mei 2018

Cara membuat font di dmd

Membuat font di dmd
Pertama bikin header file
Karena menggunakan progmem maka masukan library intpes dan avr pgmspace
Gunakan program mem untuk menulis data font
Baris pertama zize yaitu jumlah semua data baik data font ukuran panjang dll
Baris ke2 width yaitu indormasi panjang perhuruf ini lokasinya ada di data no[2]
Baris 3 height yaitu tinggi fontnya
Baris 4 fitst char yaitu data char pertama dari font kita tau nilai ascii font dimulai dr 33 dec
Baris 5 charcount digunakan menandai jumlah data font yang akan dibuat
Baris 6 chard width yaitu panjang data setiap 1 font dituloskan disini
Baris 7 data font yaitu data2 font yang nantinya kita tulis
Semua data ini nantinya akan berhibungan dengan dungsi dmd.drawchar

Jumat, 18 Mei 2018

Dmd1

Scan display
Pada fungsi scandisplay data yang dikirim tidaklah berurutan dari ram 0 terus ram 1 dst tetapi menggunakan metode dari alamat ram baris jadi ngirim datanya adalah perbaris dimulai dr baris 0 paking bawah menuju ke atas sesuai dengan raingkaian driver 74hc595 nya .
Sekali terjadi interupsi akan mengirimkan 16 byte spi yaitu yang dikirim dengn fumgsi for dengan memgulang 4 kali. setiap yerjadi interupsi flag akan bertamnah 1 dimulai dr 0 sampao 3.jadi jika flag nyampe 3berarti 64 byte ram sudah terkirim semua dan mengulang dri flag 0 lagi untuk scan lagi sampai 3 lagi terus2 jadi seperti multiplecer nantinya seakan2 bersama2 .

Susnan ram pada dmd per byte
0    1    2    3   //row0
4.   5    6    7. //Row1
8    9   10  11 // 2
12 13  13  14  //row 3 dst

Irutan 74hc595
12   8.   4.  0
13.  9.   5.  1
14. 10.  6.  2
15. 11.  7.  3

Untuk tes kita coba formula dmd untuk mengetes apakah pengurutan ram sudah benar kita bisa membuktikan dengan dormula dmd write pixel kita akan mengeset di alamat cartesian 14.2
Dengan formula wriye pixel kita masukan parameternya
Wriye pixel (14,2)
Panel=14/32 + 1 x 2/16=0 //untuk mengetahui di panel berapa
Bx=14%32+0<<5=14
By=2%16=2
Ram=14/8+2x(1<<2)=9
Lokup=bitlokup[9&0x07]=0x02 atau 10 dlm biner bit lookup dilihqt di tabel lookupnya
Akhirnya ketemu dengan menyamakan table ram dan hasil adalah sama yaitu pada ram 9 di bit ke 7 akan di set.apamat bit cartsian dari 14.2 adalah ram 9 bit 7.denagn alamat 0.0 dimulai dr pojok kiri atas nantinya fungsi write pixel adl fungsi yang diandalkan oleh fungsi2 yang lain dari draw char string line dll.jadi jika kita akan menulis huruf a nantinya kita skan menggambar di dmd per bit atau satu2 ssmpai mengjasilkan guruf a di tampilannya 5entu saja ini merujuk ke font apa yang nanti digunakan.

Kamis, 17 Mei 2018

~bitwize

Bitwise adalah kebalikan dari nilai dalam biner ini tergantung dari type data apa yang akan di bitwise misalnya jika nilainya int tak bertanda maka bitwise akan menggunakan mode 1 jika nilainya negatif
Asumsi botwise komplenen adlah -x=-1*x dengan formula x=~x+1;
Bitwize bukan kebalikan nilai dalam negatif tetapi kebalikan nilai dalam biner jika tipe datanya signed char kita bisa pakai formula x=~x+1