Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

AtMega8 bitwise (bit toggle)

[es] :: Elektronika :: Mikrokontroleri :: AtMega8 bitwise (bit toggle)

[ Pregleda: 1873 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon AtMega8 bitwise (bit toggle)07.04.2013. u 16:51 - pre 133 meseci
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.
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

Ignorisati sto je jos pinova PORTB definisano kao izlazno, na ova dva se vezuju displeji.

Unapred hvala na odgovoru.
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

m51
tu i tamo

Član broj: 244167
Poruke: 73
*.dynamic.isp.telekom.rs.



Profil

icon Re: AtMega8 bitwise (bit toggle)07.04.2013. u 17:48 - pre 133 meseci
Mislim da se ne varam u sledećem:

ovom naredbom:
PORTD=0xa4; //2
palis i portd.7 cime se aktivira i displej jedan dok je na data bus-u kod za broj 2.
 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: AtMega8 bitwise (bit toggle)07.04.2013. u 18:40 - pre 133 meseci
0xA4 (hex) je isto sto i 0b10100100 (binarno).
PORTD.7 je 1 (8. bit), znaci dispej treba da je iskljucen (ponavljam, displeje ukljucujem/iskljucujem PNP tranzistorima -> kad je na pinu 1 -> tranz. iskljucen i obrnuto, a displeji su sa zajednickom anodom).
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

uart

Član broj: 232423
Poruke: 125
*.adsl.eunet.rs.



+6 Profil

icon Re: AtMega8 bitwise (bit toggle)07.04.2013. u 19:23 - pre 133 meseci
Mislim da ovde

PORTB|=(1<<PINB0);
_delay_ms(100);
PORTB=~(1<<PINB0);
_delay_ms(100);

PORTB|=(1<<PINB0); i PORTB=~(1<<PINB0); treba da zamene mesta.

U svakom slučaju bi stavio i PORTB&=~(1<<PINB0); umesto PORTB=~(1<<PINB0); mada to u ovom slučaju nije bitno.

 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: AtMega8 bitwise (bit toggle)07.04.2013. u 21:37 - pre 133 meseci
To je to uart! :) Veliko hvala. Rekoh da je trivijalno, al kad mozak stane stao je.

Jos jednom hvala na odgovorima! Pozdrav.
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: AtMega8 bitwise (bit toggle)

[ Pregleda: 1873 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.