int x = 0;
#define NOP4 asm("nop"); asm("nop"); asm("nop"); asm("nop");
#define NOP2 asm("nop"); asm("nop");
void SendIRSequence(void);
//sends out a pulse of IR modulated at 40khz
// - the parameter is the number of cycles to send
// - each cycle is 25us long - and 50% duty cycle
//the macro converts microseconds into cycles
#define SendIRPulse(x) SendIRPulseCycles(x/25);
void SendIRPulseCycles(char cycles)
{
while (cycles--) //this loop is exactly 25us - of approximately 50% dutycycle
{
//PORTC=0b00001111;
GPIO0 = 1;
NOP4; NOP4; NOP2;
//PORTC=0b00000000;
GPIO0 = 0;
NOP4; NOP4;
}
}
//This is a delay loop that in theory delays an precise number of microseconds
//unfortunately it isn't particularly accurate
// - but it is easier to just trial/error the parameter value than to fix the function
#define waitExactUs(x) waitExactUsHex(x/256, (x%256)/5);
void waitExactUsHex(char hByte, char lByte)
{
char i;
while (lByte--) { continue; } //delay for the extra bit
while (hByte--) { //delay loop for the bulk of the time
i = 61;
while (i--) { continue; }
}
}
//This sends out the coded modulated IR pulses
// the sequence is courtesy of http://www.bigmike.it/ir-control.html
void SendIRSequence()
{
SendIRPulse(2000); //2250us of modulated IR
waitExactUs(27800); //delay 27600 us
SendIRPulse(500); //650us of modulated IR
waitExactUs(1500); //delay 1375 us
SendIRPulse(500); //575us of modulated IR
waitExactUs(3500); //delay 3350 us
SendIRPulse(630); //650us of modulated IR
}
void
main(void)
{
init(); // Function call inserted by C-Wiz
GPIO1 = 1;
for(x = 0; x < 10000; x++){}
GPIO1 = 0;
SendIRSequence();
while (1){
//TODO Auto-generated main function
}
}
Som du ser så stämmer inte kommentarerna med värdena riktigt. Ändrade på dem av någon anledning, minns ej varför.
Vet inte om det här kan räknas till "senaste kretskort" eftersom det ännu ej är etsat...
Misslyckad design: caddade ihop ett litet kort kring Atmega44/88/168 TQFP i helgen, men jag är hemskt missnöjd med resultetet. Har inte alls lyckats få in de funktioner jag hade tänkt... det skulle bli ett generellt kort för den processorn, men pga trötthet och dålig planering så blev det ingenting.... så det är bara att kasta i papperskorgen... Det ser i alla fall snyggt ut i 3D eeh... hoppas jag...
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Snygga kort alla! Jag tycker det verkar som ni tar bort "UV-skiktet" innan ni löder?
Sprayar ni korten sedan eller får kopparen vara som den är efter lödning?
Kortet ovan är tennat med Conrads glanstenn. Efter etsning så putsar jag korten med tvålull, tvättar sedan med sprit eller aceton. Sedan tennar jag eller sprayar lödlack.
En fråga från en okunnig. Hur gör jag ett kretskort lättast o billigast. Måste man ha en uv-box eller finns det någon annan metod? För fanns det ju någon penna man ritade med på kopparn. Men nu har allt blivit så smått så de e kanske inte sådan bra idé. Kör lite PCB-Layout för att rita hur det skall se ut. Men sen skall man få över det på kopparlaminatet oxå. Gissar att det är ngn sorts syra som sedan fräter bort det som skall bort. Kör man det till miljöstationen eller spär man ut det i dassastolen? Tackar på förhand!