[C7] Nhắn nhủ về Bài tập tốt nghiệp :D

vanthinhvt92

Thành Viên PIF
Chị :
2death

Anh:
Manhdd


Em có ý kiến thế này, mong anh chị xem xét, vì cái này là báo cáo về led, mà led chỉ tỏa sáng trong đêm tối, em xin đề xuất tổ chức buổi báo cáo vào ban đêm được hông ạ. Mong anh chị xem xét s kiến của em. Dạ em XIn lỗi vì phận em út mà dám tag phận bô lão :-s
:5cool_sweat:
 

tnthung1992

Thành Viên PIF
Chị :

Anh:


Em có ý kiến thế này, mong anh chị xem xét, vì cái này là báo cáo về led, mà led chỉ tỏa sáng trong đêm tối, em xin đề xuất tổ chức buổi báo cáo vào ban đêm được hông ạ. Mong anh chị xem xét s kiến của em. Dạ em XIn lỗi vì phận em út mà dám tag phận bô lão :-s
:5cool_sweat:
cùng lắm là đóng cửa tắt đèn khi show hàng :2cool_after_boom:
 

Kisses Hacker

Art Supporter
Staff member
Lúc show thường là cả đám bu bu xung quanh, bảo đảm độ tối tuyệt hảo :6cool_boss:
 

MMKC

Thành Viên PIF
bạn cấp nguồn qua không khí hay sao làm mạch nguồn luôn vậy, Xin, Xout hình như nối tụ với thạch anh nữa thì phải, đọc user guide thấy có thạch anh nội mà test trên test board thì phải dùng mới chịu chạy ="=
công nhận hoành tráng ghê :D
 

zealotnt

Cố Vấn CLB
bạn cấp nguồn qua không khí hay sao làm mạch nguồn luôn vậy, Xin, Xout hình như nối tụ với thạch anh nữa thì phải, đọc user guide thấy có thạch anh nội mà test trên test board thì phải dùng mới chịu chạy ="=
công nhận hoành tráng ghê :D
ý mình là cấp nguồn cho fanled thôi :D, bạn nói test board dùng thạch anh nội mới chịu chạy là sao nhỉ
 

vanthinhvt92

Thành Viên PIF
Có anh chị nào có cái nguồn 12v mà 2-3A không, cho em mượn với. Qua đợt show hàng em trả!! Em cảm ơn rất nhiều và có hậu tạ.!
 

zealotnt

Cố Vấn CLB
Có anh chị nào có cái nguồn 12v mà 2-3A không, cho em mượn với. Qua đợt show hàng em trả!! Em cảm ơn rất nhiều và có hậu tạ.!
mình còn 1 con PTN78020W của TI có thể share cho bạn, nếu bạn ko gấp lắm thì tự làm mạch, chắc cũng mất khoảng 1 buổi
 

phucuong23192

Thành Viên PIF
Code:
#include <msp430g2553.h>
#include "Basic_config.h"
unsigned char Data[6] = {0xC0, 0x80, 0x8C, 0x73, 0x80, 0xC0};
unsigned int count = 0, cycle,temp=0,timer=0;//Counter, Rotating cycle variable
void Timera0_init();
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;//Stop Watchdog Timer
P2SEL = 0;
P2SEL2 = 0;
P2DIR = 0xff;//Configure Port 2 as Output
P1IE |= BIT0;// Enable P1.0 Interrupt
P1IES |= BIT0;// Falling Edge Interrupt
P1IFG &= ~BIT0;// Clear Interrupt Flag
__enable_interrupt();// Enable Masketable Interrupt
 
TA0CTL = TASSEL_2 + MC_2 + ID_3+ TAIE ;
//Source Clock : SMCLK
//Divided by 8
//Continuous Mode
//Enable Overflow Interrupt
while (1)
{
count++;//count is reset by an interrupt program
if (count < 7)
P2OUT = Data[count];
else
P2OUT = 0xFF;
delay_us(cycle/50);
}
 
}
 
#pragma vector = TIMER0_A1_VECTOR
__interrupt void TAIV_Interrupt (void)
{
temp++;//Count number of overflow
TA0CTL &=~TAIFG;
 
}
#pragma vector = PORT1_VECTOR
__interrupt void P1_ISR (void)
{
count = 0;//Reset counter
cycle = (65536 * temp + TA0R - timer);
//temp: number of timer’s overflow
timer = TA0R ; // Save result
P1IFG &= ~BIT0;// Clear P1.0 interrupt flag
temp=0;
}
anh chị nào có kinh nghiệm koi giúp giúp tính toán time đúng ko mà sao nó chẻn ra hình. dùng ngắt p1.0 nhận tín hiệu hồng ngoại
 
trước tiên em nên kiểm tra xem tất cả các interrup của em đã hoạt động chưa. còn phần tính toán time trong hàm __interrupt void P1_ISR (void) thì em nên dùng lệnh dịch bit cho chương trình thực hiện được nhanh. giả sử như em dùng timer đếm lên. trong biến temp em dùng để lưu số lần tràn của timer thì em chỉ cần dùng lệnh temp<<=16; rồi temp |=TA0R; là xong. Trong hàm Interrup của PORT1 thì em chỉ cần xóa timer sau khi đã tính toán là xong. đừng để dữ nguyên timer sẽ dẫn đến lần tính kế tiếp bị sai do kết quả thu lần 2 của TA0R nhỏ hơn timer mà em lưu lại trước đó.
 

zealotnt

Cố Vấn CLB
Code:
void Send_fanled_data(unsigned char color)
{
    unsigned char i,temp,data;
    unsigned int exc;
    for(i=0;i<6;i++)
    {
        switch (i)
        {
            case (0):
            {
                exc = dis[m] & BIT0;
                if (exc != 0)
                    data = 0x07;
                    else
                    data = color;
                exc = dis[m] & BIT1;
                if (exc != 0)
                    data += 0x38;
                    else
                    data += color<<3;
                exc = dis[m] & BIT2;
                if (exc != 0)
                    {
                    data += 0x60;
                    temp = 1;
                    }
                else
                    {
                    data += color<<6;
                    temp = color & BIT2;
                    }
                send_data[i] = data;
                break;
            }
            case (1):
            {
                data = temp;
                exc = (dis[m] & BIT3);
                if (exc != 0) data += 0x0E; else data = color<<1;
                exc = (dis[m] & BIT4);
                if (exc != 0) data += 0x70; else data += color<<4;
                exc = (dis[m] & BIT5);
                if (exc != 0) {data += 0x80; temp = 3;} else {data += color<<7;temp = color & 0x06;}
                send_data[i] = data;
                break;
            }
            case (2):
            {
                data = temp;
                exc = (dis[m] & BIT6);
                if (exc != 0) data += 0x1C; else data += color<<2;
                exc = (dis[m] & BIT7);
                if (exc != 0) data += 0xE0; else data += color<<5;
                send_data[i] = data;
                break;
            }
            case (3):
            {
                exc = (dis[m] & BIT8);
                p = exc;
                if (exc != 0) data = 0x07; else data = color;
                exc = (dis[m] & BIT9);
                if (exc != 0) data += 0x38; else data += color<<3;
                exc = (dis[m] & BIT10);
                if (exc != 0) {data += 0x60; temp = 1;} else {data += color<<6;temp = color & BIT2;}
                send_data[i] = data;
                break;
            }
            case (4):
            {
                data = temp;
                exc = (dis[m] & BIT11);
                if (exc != 0) data += 0x0E; else data += color<<1;
                exc = (dis[m] & BIT12);
                if (exc != 0) data += 0x70; else data += color<<4;
                exc = (dis[m] & BIT13);
                if (exc != 0) {data += 0x80; temp = 3;} else {data += color<<7;temp = color & 0x06;}
                send_data[i] = data;
                break;
            }
            case (5):
            {
                data = temp;
                exc = (dis[m] & BIT14);
                if (exc != 0) data += 0x1C; else data += color<<2;
                exc = (dis[m] & BIT15);
                if (exc != 0) data += 0xE0; else data += color<<5;
                send_data[i] = data;
                break;
            }
        }
    }
}
em viết code thế này mà tại sao biến exc nó cho = biến data được nhỉ (cùng Register R15) :((, các trường hợp i = 3,4,5 thì chạy bị sai??
 

vanthinhvt92

Thành Viên PIF
Code:
void Send_fanled_data(unsigned char color)
{
    unsigned char i,temp,data;
    unsigned int exc;
    for(i=0;i<6;i++)
    {
        switch (i)
        {
            case (0):
            {
                exc = dis[m] & BIT0;
                if (exc != 0)
                    data = 0x07;
                    else
                    data = color;
                exc = dis[m] & BIT1;
                if (exc != 0)
                    data += 0x38;
                    else
                    data += color<<3;
                exc = dis[m] & BIT2;
                if (exc != 0)
                    {
                    data += 0x60;
                    temp = 1;
                    }
                else
                    {
                    data += color<<6;
                    temp = color & BIT2;
                    }
                send_data[i] = data;
                break;
            }
            case (1):
            {
                data = temp;
                exc = (dis[m] & BIT3);
                if (exc != 0) data += 0x0E; else data = color<<1;
                exc = (dis[m] & BIT4);
                if (exc != 0) data += 0x70; else data += color<<4;
                exc = (dis[m] & BIT5);
                if (exc != 0) {data += 0x80; temp = 3;} else {data += color<<7;temp = color & 0x06;}
                send_data[i] = data;
                break;
            }
            case (2):
            {
                data = temp;
                exc = (dis[m] & BIT6);
                if (exc != 0) data += 0x1C; else data += color<<2;
                exc = (dis[m] & BIT7);
                if (exc != 0) data += 0xE0; else data += color<<5;
                send_data[i] = data;
                break;
            }
            case (3):
            {
                exc = (dis[m] & BIT8);
                p = exc;
                if (exc != 0) data = 0x07; else data = color;
                exc = (dis[m] & BIT9);
                if (exc != 0) data += 0x38; else data += color<<3;
                exc = (dis[m] & BIT10);
                if (exc != 0) {data += 0x60; temp = 1;} else {data += color<<6;temp = color & BIT2;}
                send_data[i] = data;
                break;
            }
            case (4):
            {
                data = temp;
                exc = (dis[m] & BIT11);
                if (exc != 0) data += 0x0E; else data += color<<1;
                exc = (dis[m] & BIT12);
                if (exc != 0) data += 0x70; else data += color<<4;
                exc = (dis[m] & BIT13);
                if (exc != 0) {data += 0x80; temp = 3;} else {data += color<<7;temp = color & 0x06;}
                send_data[i] = data;
                break;
            }
            case (5):
            {
                data = temp;
                exc = (dis[m] & BIT14);
                if (exc != 0) data += 0x1C; else data += color<<2;
                exc = (dis[m] & BIT15);
                if (exc != 0) data += 0xE0; else data += color<<5;
                send_data[i] = data;
                break;
            }
        }
    }
}
em viết code thế này mà tại sao biến exc nó cho = biến data được nhỉ (cùng Register R15) :((, các trường hợp i = 3,4,5 thì chạy bị sai??
Tự nghiêng cứu đi, anh chị bận chuẩn bị cho sự kiện trong đại rồi !
 

Kisses Hacker

Art Supporter
Staff member
Toa`n show ha`ng "khu?ng" ...hix..ma^'t ma*t. wa' he^'t da'm di coi:3cool_adore:
Em đề nghị ban nick thằng ku này :doc Vi phạm nghiêm trọng nội quy diễn đàn. Khuyến mãi thêm cuốn từ điển Tiếng Việt cho em nó về gối đầu luôn :(

Các bạn C7 đang dầu sôi lửa bỏng mà CLB lại có chương trình lớn cần chuẩn bị gấp rút, hy vọng các bạn vượt lên chính mình, hoàn thành bài tốt nghiệp ngon lành nhé :D
 
Top