Det hela byggs runt några 4094 om ni skulle undra. Kretsen som progameras är en ATMega32.
Jag får inga kompilerings fel, men ingenting händer när jag testar.
Så här ser koden ut:
Kod: Markera allt
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <avr/delay.h>
uint8_t Htio = 0;//Variabler som behövs
uint8_t Hen = 0;
uint8_t Mtio = 0;
uint8_t Men = 0;
uint8_t Stio = 0;
uint8_t Sen = 0;
void strobe(void);
void strobe(void)
{
DDRC = _BV(PA0);
PORTC |= _BV(PA0);
_delay_loop_1(10);
PORTC &= ~_BV(PA0);
}
void clock(void);
void clock(void)
{
DDRC = _BV(PA2);
PORTC |= _BV(PA2);
_delay_loop_1(10);
PORTC &= ~_BV(PA2);
}
void data_ok(void);
void data_ok(void)
{
DDRC = _BV(PA1);
PORTC |= _BV(PA1);
_delay_loop_1(10);
PORTC &= ~_BV(PA1);
}
void data_nej(void);
void data_nej(void)
{
_delay_loop_1(10);
}
void enable_on(void);
void enable_on(void)
{
DDRC = _BV(PA3);
PORTC |= _BV(PA3);
}
SIGNAL(SIG_OVERFLOW2)//interuppt triggas på owerflow
{
strobe();
clock();
enable_on();
Sen++;
if(Sen>10)
{
Sen=1;
Stio++;
}
else if(Stio==6)
{
Stio=0;
Men++;
}
else if(Men>10)
{
Men=0;
Mtio++;
}
else if(Mtio==6)
{
Mtio=0;
Hen++;
}
else if(Hen==10)
{
Hen=0;
Htio++;
}
else if(Htio==2){Htio=0;}
}
int main(void)
{
TCCR2 = 0x05; //Aktivera "Normal mode"
ASSR = 0x08 ; //Asynchronous Timer/Counter2 Enable
TIMSK = 0x80; //Timer/Counter2 Overflow Interrupt Enable
uint8_t a;
uint8_t b;
uint8_t c;
uint8_t d;
uint8_t e;
asm volatile("sei"); //enable interrupt
while(1)
{
for(a=0;a>9;a++)
{
if(Htio==a)
{
data_ok();
}
else
{
data_nej();
clock();
}
}
}
{
for(b=0;b>9;b++)
{
f=0;
if(Hen==b)
{data_ok();}
else
{
data_nej();
clock();
}
}
}
{
for(c=0;c>9;c++)
{
if(Mtio==c)
{data_ok();}
else
{
data_nej();
clock();
}
}
}
{
for(d=0;d>9;d++)
{
if(Men==d){data_ok();}
else
{
data_nej();
clock();
}
}
}
{
for(e=0;e>9;e++)
{
if(Stio==e)
{
data_ok();
}
else
{
data_nej();
clock();
}
}
}
{
for(f=0;f>9;f++)
{
if(Sen==f)
{
data_ok();
}
else
{
data_nej();
clock();
}
}
}
}
}
Störst signal är de på PA0, Alltså Strobe, men det är absolut ingen stark signal, inte mer än några millivolt.
Det är inte heller några pulser utan det är mer ett brus.
har suttit och ändrat och ändrat, men nu har idéerna tagit slut, jag kan inte komma på vad som är fel.
Skulle uppskatta stort ifall någon berättade vad som var fel, och varför
