Czesc wszystkim
Wesolych
Szukalem juz dosc dlugo po tutorialach a temat dość prosty wydaje. Mianowicie, prosty podrecznikowy przyklad :
Mamy sobie atmege 8535, sprawna. Podlaczamy sobie do np PB 0 leda, PB 1 switcha :
robie tak :
Ok działa, naciskam to sie pali puszczam gasnie. Problem jest ze dziala to wylacznie na PB1 jak dam przycisk na PB2 czy jaki kolwiek inny pin to w 99% nie reaguje na przycisk czy cokolwiek a raczej zyje wlasnym zyciem albo odczytuje stan z kosmosu. Przyciski podlaczam do +VCC przez switcha i do pina przez rezystor 1k.
Chodzi mi oczywiscie o przyklad w praktyce bo w hapsimie itp to dziala...
Szukalem juz dosc dlugo po tutorialach a temat dość prosty wydaje. Mianowicie, prosty podrecznikowy przyklad :
Mamy sobie atmege 8535, sprawna. Podlaczamy sobie do np PB 0 leda, PB 1 switcha :
robie tak :
#define F_CPU 1000000UL
#include <stdlib.h>
#include <avr/io.h>
#include <util/delay.h>
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
int main(void)
{
sbi(DDRB,0);
while(1)
{
if bit_is_set(PINB, PB1)
{
sbi(PORTB,0);
loop_until_bit_is_clear(PIND, PB1);
cbi(PORTB,0);
}
}
Ok działa, naciskam to sie pali puszczam gasnie. Problem jest ze dziala to wylacznie na PB1 jak dam przycisk na PB2 czy jaki kolwiek inny pin to w 99% nie reaguje na przycisk czy cokolwiek a raczej zyje wlasnym zyciem albo odczytuje stan z kosmosu. Przyciski podlaczam do +VCC przez switcha i do pina przez rezystor 1k.
Chodzi mi oczywiscie o przyklad w praktyce bo w hapsimie itp to dziala...