TCM8240MD
Page last updated 03 Jan 2013, by .
0
replies
TCM8240MD Camera Project
main.cpp
#include "mbed.h"
LocalFileSystem local("local");
I2C i2c(p9, p10);
Serial pc(USBTX, USBRX);
int zahl = 0;
FILE *fp = fopen("/local/bild.txt", "w");
char array[100][320]; //not enough memory
int j = 0;
int wert;
#define x 100
#define y 320
void setCam(char c1,char c2);
extern "C" void EINT3_IRQHandler() {
// wert = LPC_GPIO0->FIOPIN;
// wert = bus.read();
LPC_GPIOINT->IO2IntClr |= (1<<3);
int i = LPC_GPIO2->FIOPIN;
if((i & 0x30) == 0x30) {
wert = LPC_GPIO0->FIOPIN;
//fprintf(fp,"%c",(wert & ((1 <<26)|(1 <<25)|(1 <<24)|(1 <<23)))>> 19 | (wert & (1 <<18)) >> 18 | ((wert & (1 <<17)) >> 16 | ((wert & (1 <<16)) >> 13 | (wert & (1 <<15)) >> 13)));
array[j][zahl] = ((wert & ((1 <<26)|(1 <<25)|(1 <<24)|(1 <<23)))>> 19 | (wert & (1 <<18)) >> 18 | ((wert & (1 <<17)) >> 16 | ((wert & (1 <<16)) >> 13 | (wert & (1 <<15)) >> 13)));
zahl++;
}
if(zahl == y){
zahl = 0;
j++;
}
if(j == x){
// setCam(0x04,0x8B);
NVIC_DisableIRQ(EINT3_IRQn);
for(int i = 0;i < x; i++){
// pc.printf("%i ",(i+1));
for(int j = 0;j < y; j++)
fprintf(fp,"%x ",array[i][j]);
fprintf(fp,"\n\r\n");
}
zahl = 0;
j=0;
// setCam(0x04,0x0B);
NVIC_EnableIRQ(EINT3_IRQn);
}
}
void setCam(char c1,char c2) {
int i = 1;
int address = 122;
char data[2];
data[0] = c1;
data[1] = c2;
i2c.start();
while (i != 0) {
i = i2c.write(address, data,sizeof(data));
// pc.printf("%i\n\r",i);
}
// pc.printf("\n\r");
}
int main() {
pc.baud(921600);
// LPC_SC->PCONP |= ( 1 << 15 ); // power up GPIO
// LPC_PINCON->PINSEL4 = 0x000 ;
LPC_PINCON->PINMODE4 = 0xFC0;
LPC_GPIO2->FIODIR &= ~(1 << 3)|(1 << 4)|(1 << 5); //p21,p22,p23 input mode
// LPC_GPIO1->FIODIR &= ~(1 << 30)|(1 << 31);//p20,p19 input mode
LPC_GPIO0->FIODIR &= ~(1 << 26)|(1 << 25)|(1 << 24)|(1 << 23)|(1 << 16)|(1 << 15)|(1 << 17)|(1 << 18);//input mode p18-p11
int speicher = LPC_PINCON->PINMODE1;
LPC_PINCON->PINMODE1 = (speicher | 0x3FC03F);
speicher = LPC_PINCON->PINMODE0;
LPC_PINCON->PINMODE0 = (speicher | 0xC0000000);
//-----------Interrupt---------------
LPC_GPIOINT->IO2IntEnF |= (1<<3);
setCam(0x02,0x00);
// wait(0.1);
setCam(0x02,0x40);
// wait(0.1);
setCam(0x03,0x00);
setCam(0x02,0x00);
setCam(0x05,0x00);
setCam(0x0B,0x00);
setCam(0x58,0x20);
//setCam(0x6d,0xa1);
// setCam(0x58,0x10);
//setCam(0x1D,0x1F);
setCam(0x1a,0xFF);
setCam(0x1b,0xB3);
setCam(0x1C,0xA1);
setCam(0x11,0x4A);
setCam(0x14,0x23);
setCam(0x1f,0x0F);
setCam(0x1e,0x23);
setCam(0x0e,0x00);
setCam(0x04,0x0B);//0d
NVIC_EnableIRQ(EINT3_IRQn);
while(true){
}
//Enable GPIO interrupt P0.25/AD0.2
}
Please log in to post comments.
