Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
11 years, 11 months ago.
xbee does not work after the init_vga() in vga640*480graphic libraray?
i am trying to get data from xbee and then display it on vga. but xbee does not work after the init_vga command in vga640*480graphic buitin libraray?
/* * 640x480 60Hz fullgraphic monochrome VGA Driver demo program * * Copyright (C) 2011 by Ivo van Poorten <ivop(at)euronet.nl> * and Gert van der Knokke <gertk(at)xs4all.nl> * This file is licensed under the terms of the GNU Lesser * General Public License, version 3. * * Inspired by Simon's (not Ford) Cookbook entry and Cliff Biffle's * assembly code. */ #include "mbed.h" #include "vga640x480g.h" Serial xbee1(p9, p10); DigitalOut rst1(p11); // visual feedback DigitalOut myled(LED1); DigitalOut myled1(LED2); void vga(void) { myled1=1; init_vga(); wait(0.001); int s,t; // serial port on at 115200 baud //linktopc.baud(115200); setbuf(stdout, NULL); // no buffering for this filehandle // clear the screen vga_cls(); // draw some circles for (t=10; t<200; t+=5) { vga_circle(20+t,399-t,t,WHITE); wait(0.04); } myled1=0; // draw some boxes for (t=10; t<100; t+=5) vga_box(400+t,100+t,400+t*2,100+t*2,WHITE); // circumfence the screen vga_box(0,0,639,479,WHITE); // show the complete character set for (s=0; s<4; s++) { for (t=0; t<64; t++) { vga_putchar(20+t*8,20+16*s,t+s*64,WHITE); } } // put a string on screen vga_putstring(400,370,"Hello World!",WHITE); myled1=0; // draw some lines vga_line(400,390,500,390,WHITE); vga_line(500,475,600,375,WHITE); // draw a filled box vga_filledbox(450,330,550,360,1); // draw some more boxes for (t=10; t<320; t+=5) vga_box(100+t,440-t/16,110+t,440+t/16,WHITE); myled1=1; } // visual feedback //DigitalOut myled(LED1); // define serial port for debug Serial linktopc(USBTX,USBRX); int main() { vga(); wait(10); rst1 = 0; //Set reset pin to 0 myled = 0; myled1= 1; wait_ms(1); rst1 = 1; //Set reset pin to 1 wait_ms(1); unsigned char buff[2000]; while(1) //for (int i=0; i<10000; i++) {// j++; if(xbee1.readable()) { myled1=1; wait(0.004); myled1=0; wait(0.004); } } // init the VGA subsystem (always do this first!) // all done while (1){ wait(1); myled=!myled; } }
1 Answer
11 years, 11 months ago.
Could be many things, you can for example find it out yourself by starting to disable stuff from init_vga, until your xbee works again, that way you can narrow down what is exactly causing it.
One issue is that init_vga sets the clock to 100MHz, and standard is 96MHz. That is just the edge of if it is too much difference or not, so that can be the issue. So try setting the baudrate of the xbee serial object to 9600*96/100 = 9216.