Nothing obviously wrong with your code. Since (if I understand correctly) your FPGA is also under development, your best way to proceed is to capture the SPI lines with a logic analyzer and see whether the IOIO is sending valid data. Also, why doesn't Log.d work in your looper? It normally does.
On Thu, Jun 5, 2014 at 3:03 AM, Sidharta Prahladsingh <[email protected] > wrote: > oh also spi is fixed. "spi_ = ioio_.openSpiMaster(new DigitalInput.Spec(4, > Mode.PULL_UP), new DigitalOutput.Spec(5), > new DigitalOutput.Spec(3), > new DigitalOutput.Spec[] { new DigitalOutput.Spec(2) }, > new SpiMaster.Config(Rate.RATE_1M, false, true));" worked better than > "spi_ = ioio_.openSpiMaster(4, 5, 3, 2, SpiMaster.Rate.RATE_1M);" in our > situation. > The latter produced double information. > > On Thursday, June 5, 2014 11:51:04 AM UTC+2, Sidharta Prahladsingh wrote: > >> Since it would be too much code to go through, I will just at my imports, >> MainActivity with global variables and the Looper class: >> Global variables and imports: >> >> import java.io.BufferedInputStream; >> >> import java.io.File; >> >> import java.io.FileOutputStream; >> >> import java.io.IOException; >> >> import java.io.InputStream; >> >> import java.io.InputStreamReader; >> >> import java.net.MalformedURLException; >> >> import java.net.URL; >> >> import java.net.URLConnection; >> >> import java.nio.ByteBuffer; >> >> import java.util.ArrayList; >> >> import java.util.Arrays; >> >> import java.util.List; >> >> import java.util.concurrent.ExecutionException; >> >> >> import android.R.style; >> >> import android.graphics.Bitmap; >> >> import android.graphics.Bitmap.Config; >> >> import android.graphics.BitmapFactory; >> >> import android.graphics.Canvas; >> >> import android.graphics.Color; >> >> import android.graphics.Matrix; >> >> import android.graphics.Paint; >> >> import android.graphics.Rect; >> >> import android.graphics.Paint.Style; >> >> import android.os.AsyncTask; >> >> import android.os.Bundle; >> >> import android.os.Environment; >> >> import android.util.Log; >> >> import android.view.Menu; >> >> import android.view.MenuInflater; >> >> import android.view.MenuItem; >> >> import android.view.MotionEvent; >> >> import android.view.VelocityTracker; >> >> import android.view.View; >> >> import android.view.WindowManager; >> >> import ioio.lib.api.DigitalInput; >> >> import ioio.lib.api.DigitalInput.Spec.Mode; >> >> import ioio.lib.api.DigitalOutput; >> >> import ioio.lib.api.IOIO; >> >> import ioio.lib.api.SpiMaster; >> >> import ioio.lib.api.SpiMaster.Rate; >> >> import ioio.lib.api.Uart; >> >> import ioio.lib.api.exception.ConnectionLostException; >> >> import ioio.lib.util.BaseIOIOLooper; >> >> import ioio.lib.util.IOIOLooper; >> >> import ioio.lib.util.android.IOIOActivity; >> >> import android.view.View.OnClickListener; >> >> import android.annotation.TargetApi; >> >> import android.app.AlarmManager; >> >> import android.app.Dialog; >> >> import android.app.PendingIntent; >> >> import android.content.Context; >> >> import android.content.Intent; >> >> import android.database.Cursor; >> >> import android.net.Uri; >> >> import android.os.Build; >> >> import android.provider.MediaStore; >> >> import android.widget.ArrayAdapter; >> >> import android.widget.Button; >> >> import android.widget.CheckBox; >> >> import android.widget.EditText; >> >> import android.widget.FrameLayout; >> >> import android.widget.ImageView; >> >> import android.widget.LinearLayout; >> >> import android.widget.Spinner; >> >> import android.widget.TextView; >> >> public class MainActivity extends IOIOActivity{ >> //initiation attributes >> private EditText custtext; >> private EditText urltxt; >> private Button custtxtbut; >> private Button urlshare; >> private Button picdisplayButton; >> private Button rstButton; >> private ImageView pictest; >> private static ImageView pictest2; >> private static ImageView pictest3; >> private ImageView pictest4; >> private GifView gifView; >> private GifDecoder decoder; >> private VelocityTracker mVelocityTracker = null; >> private static TextView test; >> >> //intiation variables >> //width and height of the LED-matrix >> private static int picw =33; >> private static int pich = 5; >> private static boolean isgif = false; >> private boolean bkgchk; >> private boolean check = true; >> private int bkgclr = 0; >> private int txtclr = 3; >> private static byte[] buffer = new byte[picw*pich*3]; //<---------- >> This I want to read out in Looper >> public static List<Bitmap> bmlist = new ArrayList<Bitmap>(); >> private static Bitmap lastpic = null; >> private float touchposx; >> private float touchposy; >> private float deltax; >> private float deltay; >> private Bitmap lastfullbm = null; >> private Bitmap touchpic =null; >> private Bitmap oldtouchpic =null; >> >> private static byte[] bufferin= new byte[picw*pich*3]; >> >> private static boolean picdone = true; >> >> >> *Looper Class:* >> >> static class Looper extends BaseIOIOLooper { >> >> //initiation of SPI protocol variable >> >> private SpiMaster spi_; >> >> private DigitalOutput pin8; >> >> @Override >> >> protected void setup() throws ConnectionLostException { >> >> >> pin8 = ioio_.openDigitalOutput(8, false);//image_enable >> >> >> } >> >> @Override >> >> public void loop() throws ConnectionLostException, InterruptedException >> { >> >> if (picdone == false) >> >> { >> >> if (!isgif){ >> >> //picture send process >> >> spi_ = ioio_.openSpiMaster(new DigitalInput.Spec(4, >> >> >> Mode.PULL_UP), new DigitalOutput.Spec(5), >> >> new DigitalOutput.Spec(3), >> >> new DigitalOutput.Spec[] { new DigitalOutput.Spec(2) }, >> >> new SpiMaster.Config(Rate.RATE_1M, false, true)); >> >> byte[] buffer_= buffer; >> >> int buffernum = (int) Math.ceil(buffer_.length/48); >> >> >> byte[] buffer1_= new byte[48]; >> >> byte[] packetlast= new byte[48]; >> >> pin8.write(true); >> >> >> Thread.sleep(500); >> >> for (int i =0;i<buffernum;i++){ >> >> System.arraycopy(buffer_, i*48, buffer1_, 0, 48); >> >> >> spi_.writeRead( buffer1_, buffer1_.length, >> >> >> buffer1_.length, null,0);* <------- e.g. I want to read here the MISO >> and display it on the phone or display the buffer array from here to phone. >> Log.d also doesnt work here but everywhere else.* >> >> Thread.sleep(100); >> >> >> } >> >> Thread.sleep(500); >> >> pin8.write(false); >> >> spi_.close(); >> >> } >> >> >> else >> >> { >> >> //GIF send process >> >> isgif = false; >> >> } >> >> picdone =true;//must be true to send 1 image per time. >> >> } >> >> } >> >> >> >> >> } >> >> >> protected IOIOLooper createIOIOLooper() { >> >> return new Looper(); >> >> } >> >> On Wednesday, June 4, 2014 5:55:40 PM UTC+2, Ytai wrote: >> >> Regarding SPI: there shouldn't be any lost data. I would try connecting a >> logic analyzer on MOSI/CLK to verify that. >> Note that you can do up to 64 bytes on each transaction. >> To answer the other question I need to look at your code. The static >> variables should work as you expect, but there's probably something else >> about your code that you're missing. >> >> >> On Wed, Jun 4, 2014 at 4:33 AM, Sidharta Prahladsingh <sidki...@ >> >> ... > > -- > You received this message because you are subscribed to the Google Groups > "ioio-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/ioio-users. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "ioio-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.
