grantm009

Forum Replies Created

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • in reply to: Input capture interrupt problem #997
    grantm009
    Member

    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
    Grant

    in reply to: Input capture interrupt problem #999
    grantm009
    Member

    Hi

    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
    Grant

    in reply to: Input capture interrupt problem #1057
    grantm009
    Member

    Well 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);
    }

    in reply to: Input capture interrupt problem #1056
    grantm009
    Member

    Hi

    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.

    in reply to: Input capture interrupt problem #1058
    grantm009
    Member

    Hi

    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 96

    TVout 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”);
    }

Viewing 5 posts - 1 through 5 (of 5 total)