Fossalta
Access violation at address 0x8BA82089. Read of address 0xC0FFEE in module coffee.sys. Please refill coffee bin and wait till i get back.
Ik heb 2 movingheads waarvan de stuurprinten missen. Nu heb ik vandaag eenzelfde erbij gekocht die het nog prima doet en wil ik de print "na maken" met zelf geprogrammeerde microcontrollers (AVR). Het probleem is echter dat bij de gebruikte microcontrollers (3 identieke) grotendeels de typenummers eraf gevijld zijn... Nu heb ik ze allen op de scanner gelegd, met een hoge DPI gescanned en met behulp van fotosoep ze over elkaar gelegd en ben tot een logo'tje en een gedeelte van een nummer gekomen. Het de fabrikant/logo is mij echter niet bekend en ik kan deze niet terug vinden in de logo db van t.net Is er misschien iemand die het logo danwel de microcontroller herkend ?
Ohja.. het zijn 42 Pins DIP chips met een afwijkende pin afstand (~1.7mm)
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Fossalta
Access violation at address 0x8BA82089. Read of address 0xC0FFEE in module coffee.sys. Please refill coffee bin and wait till i get back.
MAH
Every machine is a smoke machine if you operate it wrong enough
hm, dmx gaan ontvangen met een avr, t kon wel eens lastig worden. heb je ook al eens gekeken naar de chipies van the willows?
Fossalta
Access violation at address 0x8BA82089. Read of address 0xC0FFEE in module coffee.sys. Please refill coffee bin and wait till i get back.
DMX ontvangen met avr lastig ? nee hoor.. heb ik al vaak zat gedaan =) gewoon de USART goed instellen, tellertje bijhouden, en zodra je een FE (Frame error) krijgt de teller resetten..
[edit] B.t.w... de chippies van the willows zijn ook AVR's 
Denk dat ik (met dank aan flipflop's reactie) de chip in kwestie heb gevonden... MTV212MS64 nu alleen nog een datascheet vinden voor de pinbezettingen en aan het ontwerpen en proggen slaan =)
@fossalta
Heb je een site waar je projecten opstaan? of wil je wat code delen? ben altijd wel geïntereseerd in avr code, zeker mbt DMX. Welke taal is het in geschreven?
Fossalta
Access violation at address 0x8BA82089. Read of address 0xC0FFEE in module coffee.sys. Please refill coffee bin and wait till i get back.
Heb nog niet echt een site voor m'n elektronica projecten, maar ben wel van plan er een voor te maken. Dit movinghead project zal daar uiteraard bij komen te staan.
Ik gebruik over het algemeen avrlib-c, maar soms ook de die-hard assembler (afhankelijk van complexiteit). Complete stukken code zet ik liever niet online, maar wil best m'n DMX-IN routine hier posten. Zal morgen even opzoek naar de betreffende files, want nu is het tijd voor ZZZzzzzzzz
klein is fijn
Moderator
Op 24 maart 2007 00:26:47 schreef Extragroot:
http://www.the-foundation.be/manufacturer_logos.php
Ahum kuchel, "ons Codebook"? Die lijsten komen rechtstreeks van marsport af.
Prachtig jatwerk
Idem voor de SMD Codes...
[Bericht gewijzigd door Henry S. op ]
Fossalta
Access violation at address 0x8BA82089. Read of address 0xC0FFEE in module coffee.sys. Please refill coffee bin and wait till i get back.
Zoals beloofd hierbij de dmx_in routine die ik meestal gebruik. Heb hem net even gestript van overbodige code, maar weet niet 100% zeker of ie nu klopt (heb winavr niet geinstalleerd op deze computer)
dmx_in.h:
#ifndef __DMX_IN_H__
#define __DMX_IN_H__
#define START_CODE 0
void dmx_in_init(void);
#endif
dmx_in.c:
/*
DMX INPUT routine for AVR microcontrollers.
Created by L. Fridsma
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License v2.0 as published by
the Free Software Foundation.
*/
#include <avr/interrupt.h>
#include "dmx_in.h"
uint16_t dmx_chan_counter = 0;
uint8_t dmx_start_code = 0;
void dmx_in_init(void) {
// For testing set DDRA to output and show the DMX value of channel 3
DDRA = 0xFF;
// Set USART control registers (Input, interrupt enabled, 8 databits,
// 2 stopbits, no parity)
UCSRB = (1 << RXCIE) | (1 << RXEN);
UCSRC = (1 << URSEL) | (1 << USBS) | (3 << UCSZ0);
// Set for 16Mhz
UBRRL = 3;
UBRRH = 0;
// Enable global interrupts
sei();
}
ISR(USART_RXC_vect) {
// Check for frame-error (= break)
if (UCSRA & (1 << FE)) {
// reset channel counter
dmx_chan_counter = 0;
// Read UDR to clear receive buffer
UDR;
}
else {
uint8_t c = UDR;
// First byte received is startcode
if (dmx_chan_counter == 0) {
dmx_start_code = c;
}
else if (dmx_start_code == START_CODE) {
// Do your thing here. The current channel is in the dmx_chan_counter and the value is in "c"
// Test: Set port A to value if channel is 3
if (dmx_chan_counter == 3) {
PORTA = c;
}
// Note: Don't use this routine to do time-sensitive or time-
// consuming things, because the interrupt is quite fast and you
// could miss frames if your routines take too long.
}
dmx_chan_counter++;
}
}
Is het zo simpel???
Ik heb weinig ervaring nog met C, maar als dat alles is wat nodig is een DMX waarde uit te lezen...
Iig bedankt voor het delen van je code, hou ons op de hoogte van je projecten:)
