yazdığım kod kütüphanesiyle tek tek data gönderebiliyorum
void Transmit( unsigned char data )
{
//buffer bosalana kadar bekle
while ( !( UCSRA & (1<<UDRE)))
;
/* Copy 9th bit to TXB8 */
UCSRB &= ~(1<<TXB8);
if ( data & 0x0100 )
UCSRB |= (1<<TXB8);
UDR = data;
}
void main()
{
Transmit('a');
Transmit('b');
Transmit('c');
Transmit('d');
}
ancak ben bu veriyi
Transmit('a b c d ');
şeklinde tek bir defada göndermek istiyorum hem kod yazarken kolaylık olacak hemde örneğin 26 sayısını göndermek için 2 bytelık veri göndermiş olmayacağım
'AB' olarak gönderebilirsin 8 biti ayırarak ama abcd biraz zor gibi ama 26 sayısını 2 ve 6 diye ayırarak 8 biti ise 4 bit 4 bit ayırarak yapabilirsin.
aslında istediigm bunun gibi
Serial.print("ATD05321234567;"); // Seri porttan arayacağımız numarayı gönder
kendi kütüphanesi olan derleyiciler bunu sağlıyor
hi tech tede bunu yaptım ama atmelde uyduramadım bir türlü
şimdi string ifadeyi bi kerede gönderemezsiniz zaten.tam olarak soruyu anlamadım biraz daha açarmısın.string mi göndermek istiyosun yoksa char olarakmı?
void dizi_gonder(const char *yazi){
while(*yazi){
transmit(*yazi++);
}
}
bu fonksiyon ile yapabilirsin
string olarak göndermeye çalışıyorum zaten char olarak göndermeye kalksam bile ekranda ASCII karşılığı görünüyor
emre hocam sizin koduda derlediğimde bu warning çıkıyor ekrandada görününe hiç birşey yok
../a.c:94: warning: passing arg 1 of `dizi_gonder' makes pointer from integer without a cast
void transmit( unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)))
;
UCSRB &= ~(1<<TXB8);
if ( data & 0x0100 )
UCSRB |= (1<<TXB8);
UDR = data;
}
void dizi_gonder(const char *yazi)
{
while(*yazi)
{
transmit(*yazi++);
}
}
dizi_gonder('a');
ccs in kütüphanesinden idi bu fonksiyon,
sen hangi ide yi kullanıyorsun?
altta ki gibi dener misin?
void Transmit( unsigned char data )
{
//buffer bosalana kadar bekle
while ( !( UCSRA & (1<<UDRE)))
;
/* Copy 9th bit to TXB8 */
UCSRB &= ~(1<<TXB8);
if ( data & 0x0100 )
UCSRB |= (1<<TXB8);
UDR = data;
}
void dizi_gonder(const char *yazi){
while(*yazi){
transmit(*yazi++);
}
}
char dizi[20];
void main()
{
dizi="Merhaba Dunya";
dizi_gonder(dizi);
while(1);
}
avr studio kullanıyorum ve bu hatayı alıyorum şimdi
../a.c:88: error: incompatible types in assignment
dizi="Merhaba Dunya";
dizi_gonder(dizi);
bu satır için hata veriyor
mesaj birleştirme:: 05 Temmuz 2012, 21:46:34
char dizi[20]=" ";
void send_string(char *str)
{
while(*str!=0)
{
transmit(*str++);
}
}
sprintf(dizi,"Merhaba");
send_string(dizi);
bu şekilde sonuca ulaştım umarım başkalarınında işine yarar teşekkür ederim cevaplarınız için üstadlar