AtMega8 bitwise (bit toggle)
07.04.2013. u 16:51 · pre 164 meseci
#1
Drugari, potrebna mi je pomoc, trivijalan program ali ne vidim gde gresim...
Naime, imam 2xCA 7seg. displeje i radim multipleks sa 2xBC557 (PNP)
Jedna baza je vezana na PORTD.7 a druga na PORTB.0.
Na jednom treba da se ispisuje "1" a na drugom "2".
Meni se desava da se na prvom ispisuje "1", dok se na drugom menjaju "1" -> "2" -> "1" -> "2"...
Kôd je ispod, molio bih da mi neko kaze gde gresim.
Ignorisati sto je jos pinova PORTB definisano kao izlazno, na ova dva se vezuju displeji.
Unapred hvala na odgovoru.
Naime, imam 2xCA 7seg. displeje i radim multipleks sa 2xBC557 (PNP)
Jedna baza je vezana na PORTD.7 a druga na PORTB.0.
Na jednom treba da se ispisuje "1" a na drugom "2".
Meni se desava da se na prvom ispisuje "1", dok se na drugom menjaju "1" -> "2" -> "1" -> "2"...
Kôd je ispod, molio bih da mi neko kaze gde gresim.
Code:
#include <avr/io.h>
#include <util/delay.h>
#ifndef F_CPU
#define F_CPU 12000000UL
#endif
int main(void){
DDRD=0xFF; //svi izlazni
PORTD=0xFF; //svi na 1 (5V)
DDRB=0x3F; //izlazni PB0-5
PORTB=0x3F; //svi na 1 PB0-5 (5V)
while(1){
PORTD=0xff;
PORTD=0xf9; //1
PORTD&=0b01111111;
_delay_ms(100);
PORTD|=0b10000000;
_delay_ms(100);
PORTD=0xff;
PORTD=0xa4; //2
PORTB|=(1<<PINB0);
_delay_ms(100);
PORTB=~(1<<PINB0);
_delay_ms(100);
}//while
}//main
#include <avr/io.h>
#include <util/delay.h>
#ifndef F_CPU
#define F_CPU 12000000UL
#endif
int main(void){
DDRD=0xFF; //svi izlazni
PORTD=0xFF; //svi na 1 (5V)
DDRB=0x3F; //izlazni PB0-5
PORTB=0x3F; //svi na 1 PB0-5 (5V)
while(1){
PORTD=0xff;
PORTD=0xf9; //1
PORTD&=0b01111111;
_delay_ms(100);
PORTD|=0b10000000;
_delay_ms(100);
PORTD=0xff;
PORTD=0xa4; //2
PORTB|=(1<<PINB0);
_delay_ms(100);
PORTB=~(1<<PINB0);
_delay_ms(100);
}//while
}//main
Ignorisati sto je jos pinova PORTB definisano kao izlazno, na ova dva se vezuju displeji.
Unapred hvala na odgovoru.
Potpis
There are only 10 types of people in the world:
those who understand binary, and those who don't.
those who understand binary, and those who don't.