Forum Sains Indonesia




*
Selamat datang, Pengunjung. Silahkan masuk atau mendaftar. Apakah anda lupa aktivasi email?
Mei 25, 2012, 02:47:15 PM

Masuk dengan nama pengguna, kata sandi dan lama sesi

Artikel Sains

Aku Cinta ForSa

  ForSa on FB  ForSa on Twitter

Pranala Luar

ShoutBox!

Last 10 Shouts:

 

fajri

Kemarin jam 09:40:03 PM
numpang liat_liat dulu,, kexnya menarik bnget sama masalah mikon.. ! :D
 

haman11

Kemarin jam 08:11:34 AM
ada yg tauproses daur ulang urin pada cicak gk ? ;)
 

GhostInMachine

Mei 23, 2012, 03:52:17 PM
kk mau tanya cara upload Tulisan dong??
 

army.fice

Mei 23, 2012, 12:22:47 AM
sepi banget sih :(
 

lustforscience

Mei 22, 2012, 08:26:02 PM
amin
 

exile_rstd

Mei 22, 2012, 08:24:55 PM
offline....
good night all  ;)
 

exile_rstd

Mei 22, 2012, 08:23:08 PM
iyaaaa jumat saya mau ujian kenaikan kelas. doain ya om Farabi, semoga ujiannya lancar dan dpt nilai memuaskan  :D
 

Farabi

Mei 22, 2012, 08:20:37 PM
KMana aja non? Sibuk belajar?
 

exile_rstd

Mei 22, 2012, 07:44:23 PM
argh lama ga buka forsa, comment di beberapa thread jd membingungkan saya. apa karena udh lama ga asah ya...
 

N E R R O

Mei 20, 2012, 07:41:57 PM
udah lama gak mampi ke forsa, sdh banyak berubah

Show 50 latest

Penulis Topik: eeprom  (Dibaca 445 kali)

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline okimm

  • Siswa Baru
  • *
  • Tulisan: 8
  • IQ: 3
    • Lihat Profil
eeprom
« pada: Oktober 27, 2011, 07:00:25 PM »
 ;DMau tanya lagi ;D
mohon bantuannya......
saya bikin program pakai fasilitas eeprom begini cara kerjanya--->>> ada 3 tombol.... yang dua untuk untuk nambah sama ngurangin angka terus yang tombol satunya buat nyimpen ke eeprom..... nah kalo di matiin angkanya tetep seperti terakhir saya setting...... saya sudah coba tapi gk bisa2 tolong pencerahannya dari suhu-suhu sekalian..... ini programnya :



#include <mega32.h>
#include <stdlib.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#include <alcd.h>

long int eeprom *kvmeter;//deklarasi var eeprom       
int data;
char temp[10];
int ubah;
char ruy[10];

void tambah()
{
if (PIND.0==0)
{
ubah++;
}
if (PIND.1==0)
{
ubah--;
}
 }

void tampil_ubah()
{
lcd_gotoxy(0,0);
      lcd_putsf("coba2");
      delay_ms(20);
      itoa(ubah,temp);
      lcd_gotoxy(0,1);
      lcd_puts(temp);
}

void tampil_eprom()
{
lcd_gotoxy(0,0);
      lcd_putsf("coba-coba");
      delay_ms(20);
      itoa(data,ruy);
      lcd_gotoxy(0,1);
      lcd_puts(ruy);

}
void simpan()//jika pind0=0 maka akan menulis ke eeprom
{
if (PIND.2==0)
{
 *kvmeter=data;
}
}

void baca()//baca eeprom
{
kvmeter=0;
data=*kvmeter;
}

void main(void)
{
// Declare your local variables here

PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;
 
PORTC=0x00;
DDRC=0xff;

PORTD=0xFF;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;
UCSRB=0x00;

ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

SPCR=0x00;

TWCR=0x00;

lcd_init(16);

while (1)
      {
      // Place your code here
      tambah();
      tampil_ubah();
      simpan();
      baca();
      tampil_eprom();
      }
}




txh sebelumnya

Offline ksatriabajuhitam

  • Moderator
  • Profesor
  • *****
  • Tulisan: 791
  • IQ: 97
  • Gender: Pria
  • keep holding on
    • Lihat Profil
    • hsw weblog
Re: eeprom
« Jawab #1 pada: Oktober 28, 2011, 01:44:28 PM »
sebaiknya fungsi ubah() dijadikan interrupt handler untuk penekanan tombol deh.
kalo engga, dalam fungsi ubah() diawali tunggu while(PIND==0xFF); lalu pake delay sedikit untuk menghindari bouncing effect.

selamat mencoba!
not all the problems could be solved by the sword, but sword holder take control of problems.
ForSa versi mobile: http://www.forumsains.com/forum?wap2

 

Copyright © 2006-2011 Forum Sains Indonesia