Forum Replies Created
-
AuthorPosts
-
grantm009Member
OK then Michael
now we are starting to get somewhere
I think the text is on the screen now, it is not readable but it is there, Im sure.
I set the res to 96.48. The background image is fine but the text is displaying about 1 quarter down the screen with some kind of sync issue. It is on a lean, and repeated across the screen.
I think at this stage I’ll order the new chip and start there. Thanks very much for the help.
regards
Grantgrantm009MemberHi
Have you been able to overlay anything at all onto an input signal?
The only thing I have ever had out is the video signal from the camera. I’ve not been able to get text of any kind
to display.you are in a PAL country,
right: Im in australia.Does your Arduino have an ATmega328 chip?
The chip is a ATMega168. So I understand I can’t do the video at this resolutions.What options do I have ?
1) can i plug an ATMega328 into the my board ?
2) can I run it at a lower resolution, and how would i do that ?regards
Grantgrantm009MemberWell that did not change anything. I took all references to the serial out. below is the new code.
One thing I did notice is that when i put the output select on sync only, the video camera output disappears (as expected) but the screen does remain blank. My monitor, if there is no input signal, puts a logo in the top left corner. Because there is no logo displaying, this says to me that the monitor is receiving something from the board.I was wondering about the W & H variables and if they need to be adjusted for my wide format screen.
I also tried changing (blindly) the tv.fill(0) value to other values in the 0-255 range.Otherwise, being a mere hobbyist – i don’t know where to look next.
Are there maybe any “test” points that I could measure with a multimeter on the board ?I remember now that I only put the serial print lines in because it was not working.
regards
Grant#include
#include
#define W 128
#define H 96
TVout tv;
unsigned char x,y;
char s[32];void setup() {
tv.begin(PAL, W, H);
initOverlay();
initInputProcessing();
tv.select_font(font4x6);
tv.fill(0);
}void initOverlay() {
TCCR1A = 0;
// Enable timer1. ICES0 is set to 0 for falling edge detection on input capture pin.
TCCR1B = _BV(CS10);
// Enable input capture interrupt
TIMSK1 |= _BV(ICIE1);
// Enable external interrupt INT0 on pin 2 with falling edge.
EIMSK = _BV(INT0);
EICRA = _BV(ISC01);//Serial.println(“done 4”);
}void initInputProcessing() {
// Analog Comparator setup
ADCSRA &= ~_BV(ADEN); // disable ADC
ADCSRB |= _BV(ACME); // enable ADC multiplexer
ADMUX &= ~_BV(MUX0); // select A2 for use as AIN1 (negative voltage of comparator)
ADMUX |= _BV(MUX1);
ADMUX &= ~_BV(MUX2);
ACSR &= ~_BV(ACIE); // disable analog comparator interrupts
ACSR &= ~_BV(ACIC); // disable analog comparator input capture
}ISR(INT0_vect) {
display.scanLine = 0;
}void loop() {
tv.print(0,90,millis());
tv.print(40,90,tv.millis());
tv.print(60,90,display.frames);
delay(500);
}grantm009MemberHi
So you are saying that the serial output is screwing up the program.
Well i’ll be……
debug stuffed my program 🙂
I’ll have a look at it straight away
thanks for the input.
grantm009MemberHi
I have a similar problem – i.e. the program freezes when it does the TIMSK1 |= _BV(ICIE1); line.
However I am just running the demo code for the board – no ethernet or anything else.
my board is an arduino duemilanove.
I reduced the code and objectives from the demo quite a bit as it was too big for my board. In the debug outputs I always get a “done 1” but never a “done 2”.
Again, same as Cadbury, if i comment out the TIMSK1 |= _BV(ICIE1); line the sketch runs but no output.Originally I had the jumpers set to SyncSelect=V-input and outputSelect=overlay. In that setting I get video on the screen but no overlay 🙁 . I changed it to output-select=sync-only as I understand that should block the video and just give me my overlay text. But, sigh, I get nothing on the screen 😛 . So I thought about trying to use the TVout lib sync D9 with output select sync only but …. still nothing. :'(
The code is below.
any help would be appreciated.
regards
Grant#include
#include
#define W 128
#define H 96TVout tv;
unsigned char x,y;
char s[32];void setup() {
Serial.begin(9600);
Serial.println(“setting up tv.”);
tv.begin(PAL, W, H);
Serial.println(“tv begin. done”);
initOverlay();
Serial.println(“initoverlay. done”);
initInputProcessing();
Serial.println(“initInputProcessing done”);tv.select_font(font4x6);
Serial.println(“setting up tv.”);
tv.fill(0);Serial.println(“done”);
}void initOverlay() {
TCCR1A = 0;
// Enable timer1. ICES0 is set to 0 for falling edge detection on input capture pin.
TCCR1B = _BV(CS10);
Serial.println(“done 1”);// Enable input capture interrupt
TIMSK1 |= _BV(ICIE1);
Serial.println(“done 2”);// Enable external interrupt INT0 on pin 2 with falling edge.
EIMSK = _BV(INT0);
Serial.println(“done 3”);
EICRA = _BV(ISC01);
Serial.println(“done 4”);
}void initInputProcessing() {
// Analog Comparator setup
ADCSRA &= ~_BV(ADEN); // disable ADC
ADCSRB |= _BV(ACME); // enable ADC multiplexer
ADMUX &= ~_BV(MUX0); // select A2 for use as AIN1 (negative voltage of comparator)
ADMUX |= _BV(MUX1);
ADMUX &= ~_BV(MUX2);
ACSR &= ~_BV(ACIE); // disable analog comparator interrupts
ACSR &= ~_BV(ACIC); // disable analog comparator input capture
}ISR(INT0_vect) {
display.scanLine = 0;
}void loop() {
tv.print(0,90,millis());
tv.print(40,90,tv.millis());
tv.print(60,90,display.frames);
//Serial.println(“loop start”);
// tv.capture();
// tv.resume();
// tv.delay_frame(5);
// Serial.println(“loop done”);
} -
AuthorPosts