1buton ile led yakmak (c dili ya da assembly)

Başlatan franke, 17 Kasım 2017, 21:31:50

franke

bir buton ile led yakmak istiyorum.. butona bir kes basıldığında led yansın.. ikinci kez basıldığında led sönsün.. şeklinde
arkadaşlar yardımlarınızı bekliyorum..

sifirzero

sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

sifirzero

Yeni gördum kodlar ccs c de calisiyor. Atmel bilgim yok
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

tbt777

if(butonDurumu == 1)
{
    butonSayacı = butonSayacı + 1;
    if(butonSayacı%2)
         ledON();
    else                     
         ledOFF();
    while(butonDurumu);
}


şeklinde olabilir fakat bunun kötü yanı butona basılı tutulan süre boyunca programın while döngüsünde takılı kalması olacaktır.


daha iyi bir yöntem, butonu harici kesme tetikleyicisi olarak kullanmak olabilir.

crazy

#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define LED_ON PORTB |= (1<<PORTB5)
#define LED_OFF PORTB &=  ~(1<<PORTB5)
#define LED_TOGGLE PINB |= (1<<PINB5)
#define BUTON_BASILI_ISE !(PINB & (1<<PINB7))


ISR(PCINT0_vect)
{
	if (BUTON_BASILI_ISE)
	{
		LED_ON; 
	} 
	else
	{
	   LED_OFF;
	}
}



int main(void)
{
    DDRB |= (1<<DDB5);
    DDRB &=  ~(1<<DDB7);
    PCMSK0 |= (1<<PCINT7);
    PCICR |= (1<<PCIE0);
    sei();
    while (1) 
	
    {
		


	}
		
    }

fide

Merhaba.
Kodu denemedim ama şu yöntem işe yarar.
Ccs c için


Buton a0, led b0 pinine bağlı olduğunu varsayıyorum.



Unsigned int8 eski;
Unsigned int8 yeni;




Void main()
{
eski=yeni;
delay_ms(5);
yeni= input_pin(pin_a0);
if ((eski!=yeni)&[/size]&((yeni==1))
{
output_toggle(pin_b0);
}


}
buton durumunu oku. Durum değişirse ve butona basılı ise ledin durumunu değiştir. Butonu bırakma durumunu dikkate alma.


Kolay gelsin.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

mehmet

Led pini okunur, buton ile karşılaştırılır. Sadece debounce
kısmı unutulmamalı...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr