ลองหัดเขียนโค๊ดเองครับ ครั้งแรกเจอเลย พอจะBuild ให้เป็นHex. มันไม่ได้ครับ จะทำไฟแบบนี้ครับ
http://www.youtube.com/embed/6nczkG6aCjY
โปรแกรมที่ผมลองเขียนครับ
#include <12F675.H>
#fuses INTRC_IO, NOWDT, NOCPD, PROTECT, NOMCLR, PUT, BROWNOUT
#use delay(clock=4000000)
#byte ADCON0 = 0x1F
#byte ANSEL = 0x9F
#byte CMCON = 0x19
#define blue1 pin_a1
#define blue2 pin_a4
#define red1 pin_a5
#define red2 pin_a0
char gc_old_button_statu
s;
int8 i;
void MODE1(void)
{ char sayac;
for(sayac=0; sayac<4; sayac++)
{
output_high(blue1);
output_high(blue2);
delay_ms(50);
output_low(blue1);
output_low(blue2);
delay_ms(50);
}
for(sayac=0; sayac<4; sayac++)
{
output_high(red1);
output_high(red2);
delay_ms(50);
output_low(red1);
output_low(red2);
delay_ms(50);
}
delay_ms(10);
}
void MODE2(void)
{ char sayac;
for(sayac=0; sayac<4; sayac++)
{
output_high(blue1);
output_high(red1);
delay_ms(50);
output_low(blue1);
output_low(red1);
delay_ms(50);
}
for(sayac=0; sayac<4; sayac++)
{
output_high(blue2);
output_high(red2);
delay_ms(50);
output_low(blue2);
output_low(red2);
delay_ms(50);
}
delay_ms(10);
}
void MODE8(void)
{
output_high(blue1);
output_high(blue2);
delay_ms(200);
output_low(blue1);
output_low(blue2);
delay_ms(100);
output_high(red1);
output_high(red2);
delay_ms(200);
output_low(red1);
output_low(red2);
delay_ms(100);
}
void MODE4(void)
{
output_high(blue1);
output_high(blue2);
output_high(red1);
output_high(red2);
delay_ms(400);
output_low(blue1);
output_low(blue2);
output_low(red1);
output_low(red2);
delay_ms(200);
}
void MODE5(void)
{
output_high(blue1);
output_high(red2);
delay_ms(200);
output_low(blue1);
output_low(red2);
delay_ms(100);
output_high(red1);
output_high(blue2);
delay_ms(200);
output_low(red1);
output_low(blue2);
delay_ms(100);
}
void MODE7(void)
{ char sayac;
for(sayac=0; sayac<4; sayac++)
{
output_high(blue1);
output_high(red2);
delay_ms(50);
output_low(blue1);
output_low(red2);
delay_ms(50);
}
for(sayac=0; sayac<4; sayac++)
{
output_high(red1);
output_high(blue2);
delay_ms(50);
output_low(red1);
output_low(blue2);
delay_ms(50);
}
delay_ms(10);
}
void MODE6(void)
{
output_low(red2);
output_high(blue1);
delay_ms(100);
output_low(blue1);
output_high(blue2);
delay_ms(100);
output_low(blue2);
output_high(red1);
delay_ms(100);
output_low(red1);
output_high(red2);
delay_ms(100);
}
void MODE3(void)
{
char sayac;
for(sayac=0; sayac<3; sayac++)
{
output_high(blue1);
output_high(blue2);
delay_ms(20);
output_low(blue1);
output_low(blue2);
delay_ms(20);
}
for(sayac=0; sayac<3; sayac++)
{
output_high(red1);
output_high(red2);
delay_ms(20);
output_low(red1);
output_low(red2);
delay_ms(20);
}
//delay_ms(10);
}
void MODE9(void)
{
output_high(blue1);
output_high(red1);
output_high(blue2);
output_high(red2);
delay_ms(30);
output_low(blue1);
output_low(red1);
output_low(blue2);
output_low(red2);
delay_ms(100);
}
void mode10(void)
{
char sayac;
for(sayac=0; sayac<3; sayac++)
{
output_high(blue1);
output_high(blue2);
delay_ms(40);
output_low(blue1);
output_low(blue2);
delay_ms(20);
}
for(sayac=0; sayac<3; sayac++)
{
output_high(red1);
output_high(red2);
delay_ms(40);
output_low(red1);
output_low(red2);
delay_ms(20);
}
}
// ___________________
___________________
_________
void check_buttons(void)
{
char new_status;
new_status = input(pin_a2); // Read the buttons
//delay_ms(10);
// Have the switches changed ?
// if(new_status != gc_old_button_statu
s)
if((new_status != gc_old_button_statu
s) && (new_status==1))
{
// If so, do something.
//delay_ms(10);
if (i<10) {
i++;
}
else {
i=0;
}
}
// Save button status for next time.
gc_old_button_statu
s = new_status;
}
//___________________________________________________
void main()
{
i=0;
ADCON0 = 0; // ADC off
ANSEL = 0; // GPIO pins 0,1,2 and 4 set to all digital
CMCON = 7; // Comparators off
//set_tris_a(0b001111);
// for(;
while (true)
{
check_buttons();
if (i==1) {
MODE1();
}
if (i==2) {
MODE2();
}
if (i==3) {
MODE3();
}
if (i==4) {
MODE4();
}
if (i==5) {
MODE5();
}
if (i==6) {
MODE6();
}
if (i==7) {
MODE7();
}
if (i==8) {
MODE8();
}
if (i==9) {
MODE9();
}
if (i==10) {
MODE10();
}
}
}
พอจะBuild เสร็จมันขึ้นแบบนี้ครับ
ช่วยดูให้ทีครับ ว่าจะแก้ตรงไหนครับ
ครั้งแรกเจอเลย เฮ้อ....