odczyt z RS na atmega 128

Sep 09, 2006 3 Replies

Witam. Wysy³ac dane juz umiemiem ale niestety mi mikroprocesor nie odbiera. Oto kod programu



#include <avr/io.h>



#include <avr/iom128.h>



#include <avr/sfr_defs.h>



#include <avr/delay.h>



#include <avr/interrupt.h >


void usart_init(void) { UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x67; UBRR0H = 0x00; UCSR0B = 0x18; }



unsigned char usart_receive(void) { while(!(UCSR0A & (1<<RXC0))); return UDR0; }


void usart_transmit0(unsigned char data) { while(!(UCSR0A & (1<<UDRE0))); UDR0 = data;



}

int main(void) { int i,j =0;



usart_init(); while(1) { DDRD = 0b10000000; usart_transmit0(0x02);



if (usart_receive||'1') { PORTD |= (1<<PD7); } else { PORTD &= ~(1<<PD7); }


} }



w przypadku wyslania na rs232 wartosci 1 powinna szgasnac dioda a tu ciagle swieci. Jak ktos jest w stanie pomuc to thx:)



I ma racje, ¿e ¶wieci.

Po pierwsze to fukcja()||'1' jest zawsze prawd±. Powiniene¶ napisaæ funkcja()=='1' Pozatym nie widze u Ciebie nawiasów na koñcu funkcji, kompilator nic Ci nie "krzyczy" ?

nie krzycza³ kompilowal. Ps. zrobilem nawiazy i nic mi to zbytnio nie dalo. Gdyz nadal niechce gasnac (obrucilem oczywiscie wszytko tak ze jak wysle do rS to poeinno mi wylaczyc diode. Juz niewiem gdzie szukac. Mam to dobrze zaimpletowane? Jesli dobrze to moze max 232 jest dead.

to lepiej zmieñ kompilator,

ps. s³ysza³e¶ o symulatorze?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required